Technik-fan.de Wiki
mediawikidb
https://technik-fan.de/index.php/Hauptseite
MediaWiki 1.40.4
first-letter
Medium
Spezial
Diskussion
Benutzer
Benutzer Diskussion
Technik-fan.de Wiki
Technik-fan.de Wiki Diskussion
Datei
Datei Diskussion
MediaWiki
MediaWiki Diskussion
Vorlage
Vorlage Diskussion
Hilfe
Hilfe Diskussion
Kategorie
Kategorie Diskussion
Hauptseite
0
1
1
2011-01-28T18:45:19Z
MediaWiki default
0
wikitext
text/x-wiki
'''MediaWiki wurde erfolgreich installiert.'''
Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
3e49cd7ebcf2690896f04fa5d75773f2825463fb
2
1
2011-01-28T18:51:28Z
Admin
1
/* Starthilfen */
wikitext
text/x-wiki
'''MediaWiki wurde erfolgreich installiert.'''
Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].
== Technik Fan Wiki ==
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
1be72dd81f4f8677d8b0bb5899f89d3ef8d79dec
3
2
2011-01-28T18:53:20Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
b5721c10ca621a4861ad5d5d71eb9d17c470b83b
4
3
2011-01-28T18:59:29Z
Admin
1
/* Willkommen beim Technik Fan Wiki */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
Alle Senders eines Transponders anzeigen lassen
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
4ae5c42e9b0faeec00ed5f2356f7ac4d812b4aee
5
4
2011-01-28T18:59:54Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
[Alle Senders eines Transponders anzeigen lassen]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
fa9b21a29b69f00e4aaf9667e8a1b2ec8cad4cf6
6
5
2011-01-28T19:01:08Z
Admin
1
/* Linux und VDR */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [Alle Senders eines Transponders anzeigen lassen]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
275fad9af26cbc09bd3ad938ae0a224af85c362d
7
6
2011-01-28T19:01:22Z
Admin
1
/* Linux und VDR */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
[[Alle Senders eines Transponders anzeigen lassen]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
dbd889d38fe97d18d304f8306162be7b11e7bc64
9
7
2011-01-28T19:02:51Z
Admin
1
/* Linux und VDR */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
[[Alle Senders eines Transponders anzeigen lassen]]
[[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
9f1b9ae3377c28bae5cad2bab62c25cf80f4b71d
10
9
2011-01-28T19:03:27Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
2c1492f72fa92a37e60f859210196c8147369790
14
10
2011-01-28T19:09:28Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
820b490ab6aff2c1a4166d2c7be49912fee49bfd
18
14
2011-01-29T10:53:14Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Einfache Steuerung der parallelen Schnittstelle]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
2fabaee46493b4050969cdca974d91b65aba4009
25
18
2011-01-29T20:43:50Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
48dff42cb9d68ff888acd9512b7929df5a6d15c7
29
25
2011-01-29T20:50:33Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
6bde4be564e8aafad2db749a8462d6503aa97aa4
31
29
2011-01-29T20:54:04Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
== Starthilfen ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
51fe502ac78db8794bdbe00c2d32f915b65568ba
32
31
2011-01-29T20:55:20Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ansteuern mit Linux ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
2ccea6beace6638149cb0d2f4ac30df717540739
34
32
2011-01-29T21:15:23Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ansteuern mit Linux ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
== Sonstiges ==
* [[http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]]
1b2db79e1e125c5c8c1a67d5aef2c55bae40ff2d
35
34
2011-01-29T21:15:32Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ansteuern mit Linux ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
bc69d6dee41455c5bfba487516f00cfd8e1c84d4
36
35
2011-01-29T21:16:22Z
Admin
1
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ansteuern mit Linux ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
d4442e5d5f47a5cb4fe1fa7c6f61a1adeb7bd33f
38
36
2011-10-26T10:43:14Z
Admin
1
/* Hardware ansteuern mit Linux */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
57610932d2ed64fc8ef5ee2da85c38a704a14158
39
38
2011-10-26T10:44:24Z
Admin
1
/* Hardware */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
e47ade1881c96ff2cbdc48f706c438199ace51a7
49
39
2011-11-17T18:12:59Z
Admin
1
/* Hardware */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
== Arduino ==
* [[Arduino MIDI Input]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
ab4f3b2a81f81c5e34ef9067868d1004c848216d
Alle Senders eines Transponders anzeigen lassen
0
2
8
2011-01-28T19:02:06Z
Admin
1
Die Seite wurde neu angelegt: „'''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen''' In das VDR Verzeichniss wechseln: cd /etc/vdr Die Senderliste…“
wikitext
text/x-wiki
'''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen'''
In das VDR Verzeichniss wechseln:
cd /etc/vdr
Die Senderliste anzeigen lassen:
vim channels.conf
Für das Erste z.B. erscheint dieser Eintrag:
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
Die Nummer des Transponders beträgt in diesem Fall: 410000.
Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt:
grep 410000 channels.conf
Ausgabe:
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0
BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0
arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0
hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0
Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0
SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0
Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0
Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0
4381c2a463f8047c4d72b7f2398aecf5188de6a6
Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten
0
3
11
2011-01-28T19:04:33Z
Admin
1
Die Seite wurde neu angelegt: „'''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author überni…“
wikitext
text/x-wiki
'''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!'''
In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar.
WLAN Verbindung im Netzwerkmanager deaktivieren:
rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen
ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen
ifconfig
eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC:
inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0
inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:126 errors:0 dropped:0 overruns:0 carrier:2
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b)
Speicher:fbfc0000-fc000000
Physische WLAN Schnittstelle herunterfahren:
ifconfig wifi0 down
Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen:
wlanconfig ath10 create wlandev wifi0 wlanmode monitor
Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst):
iwconfig
ath01 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Channel:0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Physische Schnittstelle hochfahren:
ifconfig wifi0 up
Airmon Schnittstelle zuweisen:
airmon-ng start ath01
Airodump starten:
airodump-ng ath01
Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt.
0e4322c657db245eb22b588e0c51d6b9ff602ebe
13
11
2011-01-28T19:08:35Z
Admin
1
wikitext
text/x-wiki
'''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!'''
In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar.
WLAN Verbindung im Netzwerkmanager deaktivieren:
rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen
ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen
ifconfig
eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC:
inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0
inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:126 errors:0 dropped:0 overruns:0 carrier:2
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b)
Speicher:fbfc0000-fc000000
Physische WLAN Schnittstelle herunterfahren:
ifconfig wifi0 down
Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen:
wlanconfig ath10 create wlandev wifi0 wlanmode monitor
Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst):
iwconfig
ath01 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Channel:0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Physische Schnittstelle hochfahren:
ifconfig wifi0 up
Airmon Schnittstelle zuweisen:
airmon-ng start ath01
Airodump starten:
airodump-ng ath01
Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt.
[[Datei:Airodump-wlans.png|Airodump WLAN]]
f84c21958bb4cdc2c675027deaa1ad2cc131b1fb
Datei:Airodump-wlans.png
6
4
12
2011-01-28T19:06:07Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Der PC als Temperatur Sensor - Digitemp
0
5
15
2011-01-28T19:10:51Z
Admin
1
Die Seite wurde neu angelegt: „'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die B…“
wikitext
text/x-wiki
'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.'''
Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche
Bauanleitung findet ihr hier:
https://systemausfall.org/wikis/howto/DigiTemp
Nun müssen wir das Programm digitemp installieren:
apt-get install digitemp
Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit:
digitemp_DS9097 -i ttyS0
Die Ausgabe sollte dann so aussehen:
Searching the 1-Wire LAN
106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 106C6C7C01080012
Wrote .digitemprc
Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden:
apt-get install rrdtool
Nun erstellen wir ein paar Scripte unter /auktion/rrdtool
cd /auktion/rrdtool
vim erzeugepng.sh
Die Datei sollte mit folgendem Inhalt gefüllt werden:
nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \
-l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \
DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \
DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \
DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \
VDEF:g1a=g1,LAST \
VDEF:gmina=gmin,MINIMUM \
VDEF:gmaxa=gmax,MAXIMUM \
LINE2:g1#ff0000:"Zimmer Temperatur" \
GPRINT:g1a:"aktuell\: %5.2lf °C" \
COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n"
Datei ausführbar machen mit:
chmod ug+x erzeugepng.sh
Wenn alles geklappt hat erscheint nach Eingabe von:
./erzeugepng.sh
unter dem Ordner /var/www/temperatur.png die Grafik...
8f2256b149ff4a7a0ad2b578d2cb94f629185f2c
16
15
2011-01-28T19:12:43Z
Admin
1
wikitext
text/x-wiki
'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.'''
Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche
Bauanleitung findet ihr hier:
https://systemausfall.org/wikis/howto/DigiTemp
Nun müssen wir das Programm digitemp installieren:
apt-get install digitemp
Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit:
digitemp_DS9097 -i ttyS0
Die Ausgabe sollte dann so aussehen:
Searching the 1-Wire LAN
106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 106C6C7C01080012
Wrote .digitemprc
Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden:
apt-get install rrdtool
Nun erstellen wir ein paar Scripte unter /auktion/rrdtool
cd /auktion/rrdtool
vim erzeugepng.sh
Die Datei sollte mit folgendem Inhalt gefüllt werden:
nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \
-l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \
DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \
DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \
DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \
VDEF:g1a=g1,LAST \
VDEF:gmina=gmin,MINIMUM \
VDEF:gmaxa=gmax,MAXIMUM \
LINE2:g1#ff0000:"Zimmer Temperatur" \
GPRINT:g1a:"aktuell\: %5.2lf °C" \
COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n"
Datei ausführbar machen mit:
chmod ug+x erzeugepng.sh
Wenn alles geklappt hat erscheint nach Eingabe von:
./erzeugepng.sh
unter dem Ordner /var/www/temperatur.png die Grafik...
Links:
http://lena.franken.de/hardware/temperaturmessung.html
http://www.arbeitsplatzvernichtung-durch-outsourcing.de/marty44/rrdtool.html
https://systemausfall.org/wikis/howto/DigiTemp
Anschluss und Funktion des COM Ports
Von „http://www.technik-fan.de/wiki/index.php/Der_PC_als_Temperatur_Sensor_-_Digitemp“
b9262529d63d576928cf5407eb5a24837d33ce6c
17
16
2011-01-28T19:15:06Z
Admin
1
wikitext
text/x-wiki
'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.'''
Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche
Bauanleitung findet ihr hier:
https://systemausfall.org/wikis/howto/DigiTemp
Nun müssen wir das Programm digitemp installieren:
apt-get install digitemp
Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit:
digitemp_DS9097 -i ttyS0
Die Ausgabe sollte dann so aussehen:
Searching the 1-Wire LAN
106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 106C6C7C01080012
Wrote .digitemprc
Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden:
apt-get install rrdtool
Nun erstellen wir ein paar Scripte unter /auktion/rrdtool
cd /auktion/rrdtool
vim erzeugepng.sh
Die Datei sollte mit folgendem Inhalt gefüllt werden:
nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \
-l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \
DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \
DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \
DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \
VDEF:g1a=g1,LAST \
VDEF:gmina=gmin,MINIMUM \
VDEF:gmaxa=gmax,MAXIMUM \
LINE2:g1#ff0000:"Zimmer Temperatur" \
GPRINT:g1a:"aktuell\: %5.2lf °C" \
COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n"
Datei ausführbar machen mit:
chmod ug+x erzeugepng.sh
Wenn alles geklappt hat erscheint nach Eingabe von:
./erzeugepng.sh
unter dem Ordner /var/www/temperatur.png die Grafik...
'''Links:'''<br/>
http://lena.franken.de/hardware/temperaturmessung.html
http://www.arbeitsplatzvernichtung-durch-outsourcing.de/marty44/rrdtool.html<br/>
https://systemausfall.org/wikis/howto/DigiTemp<br/>
'''Anschluss und Funktion des COM Ports'''<br/>
Von „http://www.technik-fan.de/wiki/index.php/Der_PC_als_Temperatur_Sensor_-_Digitemp“
c8406f928627d9d18dbb76b9acc90fe533d6dea8
37
17
2011-05-09T13:04:21Z
Admin
1
wikitext
text/x-wiki
'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.'''
Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche
Bauanleitung findet ihr hier:
https://systemausfall.org/wikis/howto/DigiTemp
Nun müssen wir das Programm digitemp installieren:
apt-get install digitemp
Konfiguration initialisieren:
digitemp_DS9097 -i -s0 -q -c /root/digitemp.cfg
Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit:
digitemp_DS9097 -i ttyS0
Die Ausgabe sollte dann so aussehen:
Searching the 1-Wire LAN
106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 106C6C7C01080012
Wrote .digitemprc
Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden:
apt-get install rrdtool
Nun erstellen wir ein paar Scripte unter /auktion/rrdtool
cd /auktion/rrdtool
vim erzeugepng.sh
Die Datei sollte mit folgendem Inhalt gefüllt werden:
nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \
-l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \
DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \
DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \
DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \
VDEF:g1a=g1,LAST \
VDEF:gmina=gmin,MINIMUM \
VDEF:gmaxa=gmax,MAXIMUM \
LINE2:g1#ff0000:"Zimmer Temperatur" \
GPRINT:g1a:"aktuell\: %5.2lf °C" \
COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n"
Datei ausführbar machen mit:
chmod ug+x erzeugepng.sh
Wenn alles geklappt hat erscheint nach Eingabe von:
./erzeugepng.sh
unter dem Ordner /var/www/temperatur.png die Grafik...
'''Links:'''<br/>
http://lena.franken.de/hardware/temperaturmessung.html
http://www.arbeitsplatzvernichtung-durch-outsourcing.de/marty44/rrdtool.html<br/>
https://systemausfall.org/wikis/howto/DigiTemp<br/>
'''Anschluss und Funktion des COM Ports'''<br/>
Von „http://www.technik-fan.de/wiki/index.php/Der_PC_als_Temperatur_Sensor_-_Digitemp“
4d12b1448516b11b6cbc9bdae6f175ff532d89a4
Einfache Steuerung der parallelen Schnittstelle
0
6
19
2011-01-29T10:54:51Z
Admin
1
Die Seite wurde neu angelegt: „Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können. Ich verwende eine Schaltung aus 4 Leds, die auf eine Roch…“
wikitext
text/x-wiki
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
3687b4195a5b683bf0061eac631dcd669b4f06c4
20
19
2011-01-29T11:11:43Z
Admin
1
wikitext
text/x-wiki
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
<source lang="c">
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
</source>
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
d79f801b4c2256479ae2d1420f8d7f3d4cff7862
21
20
2011-01-29T11:12:31Z
Admin
1
wikitext
text/x-wiki
<source lang="c">
while(1){
i++;
}
</source>
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
<source lang="c">
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
</source>
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
41272e73b0b6251c2f4eb765efa12429d598a3b8
22
21
2011-01-29T11:15:18Z
Admin
1
wikitext
text/x-wiki
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
<source>
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
</source>
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
65ab4d51aaea223625d0a1b0a8352bf06ea3c896
23
22
2011-01-29T11:16:08Z
Admin
1
wikitext
text/x-wiki
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
<source>
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
</source>
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
<source lang=bash>
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
</source>
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
c5e26c461c7715e64f89604086aff70988d47dc0
24
23
2011-01-29T11:17:59Z
Admin
1
wikitext
text/x-wiki
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
<source>
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
</source>
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
<source lang=bash>
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
</source>
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<source lang=html4strict>
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
</source>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
1940cb31d459af9caad1829025a4310b191f6955
Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox
0
7
26
2011-01-29T20:47:47Z
Admin
1
Die Seite wurde neu angelegt: „==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.== 1. Als erstes mus…“
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<source lang=bash>
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</source>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
<source lang=bash>
vim /etc/init.d/xorg
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
05207eb8170f991491a1695ae75220961400685a
27
26
2011-01-29T20:48:57Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<source lang=bash>
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</source>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
<source lang=bash>
vim /etc/init.d/xorg
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
56f6f56718022fabd1b64ba6021b2a20b6fb7738
28
27
2011-01-29T20:49:24Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<source lang=bash>
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</source>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
66003c95daa0323cb860f6e833490ac7f95b9513
ISDN Anrufbeantworter mit Capisuite
0
8
30
2011-01-29T20:52:50Z
Admin
1
Die Seite wurde neu angelegt: „===Diese Anleitung zeigt wie ein Anrufbeantworter mit Capisuite erstellt werden kann=== '''Voraussetzung: Die Capi Schnittstelle muss konfiguriert sein. Z.B. übe…“
wikitext
text/x-wiki
===Diese Anleitung zeigt wie ein Anrufbeantworter mit Capisuite erstellt werden kann===
'''Voraussetzung: Die Capi Schnittstelle muss konfiguriert sein. Z.B. über eine FritzCard etc.'''
'''Capisuite installieren:'''
apt-get install capisuite
Voice Mail Gruppen erstellen:
groupadd vm_test
useradd -g vm_test -r vm_test
vim /etc/capisuite/answering_machine.conf
Inhalt der Datei:
<source lang=bash>
# These are some global defaults - see comments in the original file
[GLOBAL]
audio_dir="/usr/share/capisuite/"
voice_user_dir="/var/spool/capisuite/users/"
user_audio_files="0"
voice_delay="5"
announcement="announcement.la"
record_length="300"
record_silence_timeout="8"
[vm_test]
voice_numbers="223344" #Hier muss die eigene MSN rein
voice_action="MailAndSave"
voice_delay="5"
record_length="60"
voice_email="test@arcor.de"
pin="00000"
</source>
incoming.py anpassen:
Am Anfang des Skriptes sollte das eingefügt werden:
# -*- coding: UTF-8 -*-
Die E-Mail Nachricht kann auch geändert werden (Zeile 254):
<source lang=bash>
if (action=="mailandsave"):
cs_helpers.sendMIMEMail(fromaddress, mailaddress, "Anruf erhalten von: "+call_from+" zu "+call_to, "la",
"Du hast eine Nachricht auf dem Anrufbeantworter erhalten von der Nummer: "+call_from+" zu "+call_to+"\nDatum:
"+time.ctime()+"\n\n"
+"Die Nachricht wurde an diese E-Mail angehaengt.\n", filename)
</source>
Jetzt Capisuite neu starten...
/etc/init.d/capisuite restart
und die Nummer 223344 anrufen. Am besten noch ein tail auf das LOG.
tail -f /var/log/capisuite.log
Das war's schon habt ihr einen Anrufbeantworter.
Quellen:
* http://www.mth-solutions.de/howtos/debian_ubuntu/capisuite
* http://wiki.ubuntuusers.de/CapiSuite
4a888ef8708e7c19355ca558fb1e25aa11faf10a
USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller
0
9
33
2011-01-29T20:57:38Z
Admin
1
Die Seite wurde neu angelegt: „'''Hier wird eine Möglichkeit der Hardware Steuerung mit Debian Linux erläutert. Ziel ist es, Funksteckdosen über das Internet schalten zu können. Das Herz u…“
wikitext
text/x-wiki
'''Hier wird eine Möglichkeit der Hardware Steuerung mit Debian Linux erläutert. Ziel ist es, Funksteckdosen über das Internet schalten zu können.
Das Herz unserer Schaltung stellt der USB Mikrocontroller Cypress CY7C6300 dar. Dieser kommuniziert direkt über den USB Port und stellt wahlweise 8 Ein oder Ausgänge bereit. Eine komplette Platine zum Experimentieren kann bei der AK Modul-Bus Gmbh bezogen werden. Dabei kostet der bereits mit passender Firmware geflashter Chip etwa 15 Eur. Darüber hinaus werden noch 2 Widerstände und ein Quartz mit 6 Mhz benötigt.
Der Cypress CY7C6300:'''
Wird der Controller an den USB Port eines Linux Rechners angeschlossen wird er automatisch initialisiert und die passenden Module werden geladen:
dmesg
Es erscheint dann:
[ 152.440000] usb 1-2: new low speed USB device using uhci_hcd and address 2
[ 162.612000] usb 1-2: configuration #1 chosen from 1 choice
[ 167.740000] cypress_cy7c63 1-2:1.0: Cypress CY7C63xxx device now attached
[ 167.740000] usbcore: registered new interface driver cypress_cy7c63
Nach dem Laden des Treibers wird ein Port zum steuern angelegt, dieser ist im folgendem Pfad zu finden(Die USB ID wird von dmesg übernommen):
/sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0
Um die Ports einzulesen ist folgender Befehl nötig:
cat /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0
Um die Ausgänge ansteuern zu können benötigen wir diesen Befehl:
echo 128 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0
Die Ports werden ähnlich wie die parallele Schnittstelle binär codiert angesprochen. Aus den Beispielen ergibt sich die entsprechende Codierung:
Ersten Port einschalten(2 hoch 0):
echo 1 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0
Ersten und zweiten Port einschalten(2 hoch 0 + 2 hoch 1):
echo 3 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0
Ersten und dritten Port einschalten(2 hoch 0 + 2 hoch 2):
echo 5 > /sys/bus/usb/drivers/cypress_cy7c63/1-2:1.0/port0
Referenzen
* http://www.ak-modul-bus.de/
* http://www.obock.de/kernel/cypress/
6d29f65cb2e1f15235b7656d0a55469a99cadecc
Datei:Detector1.jpg
6
11
41
2011-10-26T10:59:07Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Isotronic 5 in 1 Detektor verbessern
0
12
42
2011-10-26T11:01:33Z
Admin
1
Die Seite wurde neu angelegt: „=Hardware= Isotronic 5 in 1 Detektor Art. Nr: 90645 Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-m…“
wikitext
text/x-wiki
=Hardware=
Isotronic 5 in 1 Detektor Art. Nr: 90645
Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html
Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind.
=Benötigtes Werkzeug=
* Schraubendreher
* 10 min. Zeit
[[Datei:Detector.jpg|5 in 1 Detektor]]
Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen
[[Datei:Detector1.jpg|5 in 1 Detektor]]
2b4569ee47775d8eab3b540430549064ef5891ee
45
42
2011-10-26T11:15:25Z
Admin
1
wikitext
text/x-wiki
=Hardware=
Isotronic 5 in 1 Detektor Art. Nr: 90645
Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html
Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind.
=Benötigtes Werkzeug=
* Schraubendreher
* 10 min. Zeit
[[Datei:Detector.jpg|5 in 1 Detektor]]
''Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen. Dabei wird dann das Potentiometer auf dem Bild genau so weit gedreht bis der Summer nicht mehr ertönt. Somit hat man eine viel höhere Genauigkeit beim Suchen von Elektro Leitungen. Der Regler Links daneben ist für die Erkennung von Metall. Evtl. kann auch hier noch eine höhere Genauigkeit erreicht werden.''
<gallery>
Datei:Detector3.jpg|Nach dem Öffnen des Gehäuses bietet sich dieses Bild
Datei:Detector1.jpg|Einstellen des Potentiometers
Datei:Detector2.jpg|Die neue Position des Potentiometers
</gallery>
d3f06082bbfe974831c8e81b813f71c0dca480cc
46
45
2011-10-26T11:21:17Z
Admin
1
wikitext
text/x-wiki
=Hardware=
Isotronic 5 in 1 Detektor '''Art. Nr: 90645, Detektor 07/04 '''<BR>
Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html
Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden, da die Reichweite sehr begrenzt ist. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind.
=Benötigtes Werkzeug=
* Schraubendreher
* 10 min. Zeit
[[Datei:Detector.jpg|5 in 1 Detektor]]
''Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen. Dabei wird dann das Potentiometer auf dem Bild genau so weit gedreht bis der Summer nicht mehr ertönt. Somit hat man eine viel höhere Genauigkeit beim Suchen von Elektro Leitungen. Der Regler Links daneben ist für die Erkennung von Metall. Evtl. kann auch hier noch eine höhere Genauigkeit erreicht werden.''
<gallery>
Datei:Detector3.jpg|Nach dem Öffnen des Gehäuses bietet sich dieses Bild
Datei:Detector1.jpg|Einstellen des Potentiometers
Datei:Detector2.jpg|Die neue Position des Potentiometers
</gallery>
Stromleitungen können besser erkannt werden wenn Strom hindurch fliesst. Also wenn nötig einfach das Licht einschalten.
99dd8ff4eb115d886060097dd66337c42233650f
48
46
2011-10-26T11:24:22Z
Admin
1
wikitext
text/x-wiki
=Hardware=
Isotronic 5 in 1 Detektor '''Art. Nr: 90645, Detektor 07/04 '''<BR>
Erhältlich z.B. bei Conrad: http://shop.conrad-uk.com/1/2-a2-uk0490301__isotronic-5-in-1-detector-for-wood-metal-current-90645-.html
Leider ist der 5 in 1 Detektor kaum geeignet um elektrische Leitungen die Unterputz verlegt sind zu finden, da die Reichweite sehr begrenzt ist. Man kann jedoch die Empfindlichkeit des Detektors ohne grossen Aufwand verbessern. Dann erkennt der Detektor auch Leitungen die tiefer in der Wand oder in Hohlwänden verlegt sind.
=Benötigtes Werkzeug=
* Schraubendreher
* 10 min. Zeit
[[Datei:Detector4.jpg|5 in 1 Detektor]]
''Nach dem Öffnen muss man die drei Potentiometer im vorderen Teil suchen. Dabei wird dann das Potentiometer auf dem Bild genau so weit gedreht bis der Summer nicht mehr ertönt. Somit hat man eine viel höhere Genauigkeit beim Suchen von Elektro Leitungen. Der Regler Links daneben ist für die Erkennung von Metall. Evtl. kann auch hier noch eine höhere Genauigkeit erreicht werden.''
<gallery>
Datei:Detector3.jpg|Nach dem Öffnen des Gehäuses bietet sich dieses Bild
Datei:Detector1.jpg|Einstellen des Potentiometers
Datei:Detector2.jpg|Die neue Position des Potentiometers
</gallery>
Stromleitungen können besser erkannt werden wenn Strom hindurch fliesst. Also wenn nötig einfach das Licht einschalten.
4017981eb7a835b3a80456ef9c3b87c29a12f7cd
Datei:Detector2.jpg
6
13
43
2011-10-26T11:08:50Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Detector3.jpg
6
14
44
2011-10-26T11:14:30Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Detector4.jpg
6
15
47
2011-10-26T11:23:45Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Arduino MIDI Input
0
16
50
2011-11-17T18:18:28Z
Admin
1
Die Seite wurde neu angelegt: „=Hardware= Arduino Mega oder Uno '''Bauteile:''' Diode: 1N 4148<BR> Optokoppler: CNY 17F2<BR> Widerstand: 220 Ohm, 2,2 kOhm<BR> Lochrasterplatine: H25PR050<BR>“
wikitext
text/x-wiki
=Hardware=
Arduino Mega oder Uno
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
33d0b37b361b26321a56ad386141648f590f8407
Datei:Midi1.png
6
17
51
2011-11-17T18:27:10Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Arduino MIDI Input
0
16
52
50
2011-11-17T18:27:59Z
Admin
1
wikitext
text/x-wiki
=Hardware=
Arduino Mega oder Uno
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund
[[Datei:midi1.png|Platine]]
b0212b5685366b31ca38575b352770160f3e1663
54
52
2011-11-17T18:30:07Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund
[[Datei:midi1.png|Platine]]
a5fc122e7bf0779d8789094b814fb60dd5ee787e
56
54
2011-11-17T18:35:32Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]
d0d298e499c94479e00369c4ac63bc30344fdf6d
58
56
2011-11-17T18:38:43Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]
37c86494820f7d4ab33bbcbfb9791643098c6344
59
58
2011-11-17T18:44:44Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(57600);
Serial3.begin(57600);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering
Serial.println(incomingByte); }
}
</source>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
4afd40060cdd008710331f66ee5ac248c633f717
60
59
2011-11-17T18:48:25Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(57600);
Serial3.begin(57600);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering
Serial.println(incomingByte); }
}
</source>
Es ergibt sich folgendes Bild beim Drücken der Tasten am Keyboard:
<source lang="text">
102
30
30
38
32
102
6
56
38
30
102
128
32
6
</source>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
07d5c76ae9dff95cba3b45eea45407fb2d0d71e6
61
60
2011-11-17T18:48:51Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(57600);
Serial3.begin(57600);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) { // Filtering
Serial.println(incomingByte); }
}
</source>
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
<source lang="text">
102
30
30
38
32
102
6
56
38
30
102
128
32
6
</source>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
c2a9e851050459647b6d510332e22ba5b8118db8
62
61
2011-12-16T18:34:09Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
//Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250
int incomingByte = 0; // for incoming serial data
int temp = 0;
int i1=0;
void setup() {
Serial.begin(31250);
Serial3.begin(31250);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) {
if (temp == 144 or temp == 0) {
switch (incomingByte) {
case 96:
Serial.println("Note: 96");
break;
case 95:
Serial.println("Note: 95");
break;
case 94:
Serial.println("Note: 94");
break;
case 93:
Serial.println("Note: 93");
break;
}
}
temp = incomingByte;
Serial.println(incomingByte);
i1=0;
}
}
</source>
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
<source lang="text">
102
30
30
38
32
102
6
56
38
30
102
128
32
6
</source>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
dbebc977e769bb6b6ac0d15a26412fdc5ca94177
Datei:Midi1.png
6
17
53
51
2011-11-17T18:28:50Z
Admin
1
hat eine neue Version von „[[Datei:Midi1.png]]“ hochgeladen
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Midi2.png
6
18
55
2011-11-17T18:33:09Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Midi3.png
6
19
57
2011-11-17T18:38:15Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Hauptseite
0
1
63
49
2012-01-13T18:12:44Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
862f9f6d1e2ec23d387f0769f307cf7cb8ce8bc4
Open Energy Monitor
0
20
64
2012-01-13T18:15:48Z
Admin
1
Die Seite wurde neu angelegt: „=Software== Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gema…“
wikitext
text/x-wiki
=Software==
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gemacht werden:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
cafd1798dfd896e99e2d07f758f036562e94c344
65
64
2012-01-13T18:16:22Z
Admin
1
wikitext
text/x-wiki
=Software==
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gemacht werden:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
9befcb9cfc9bf944d6effc4766417b100922e321
66
65
2012-01-13T18:18:44Z
Admin
1
wikitext
text/x-wiki
=Software=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen folgende Einstellungen gemacht werden:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
44efa5c35ce1913bd5b075984562e72fa5e3e817
67
66
2012-01-13T18:20:15Z
Admin
1
wikitext
text/x-wiki
=Software=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
f2907dd0d9fdf1dcfc27835513677ab003f17661
68
67
2012-01-13T18:21:38Z
Admin
1
wikitext
text/x-wiki
=Software=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf.
a3906fe888d1d3b5f4e05249652549b244c05a27
69
68
2012-01-13T18:23:20Z
Admin
1
wikitext
text/x-wiki
=Software=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
d901cf4404b9d4baa35b1a50e8beede557bb76f8
70
69
2012-01-13T18:24:58Z
Admin
1
wikitext
text/x-wiki
=Software=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
d736ec9e5b6a406a7a0c09c91e5f19ab3732abc1
71
70
2012-01-13T18:28:45Z
Admin
1
wikitext
text/x-wiki
=Software=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
1b48537dc62f50b5c1befeede9809dc4faa3c696
72
71
2012-01-13T21:02:22Z
Admin
1
wikitext
text/x-wiki
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
fde5380570628bb222d11d169f75f47efc6b3923
73
72
2012-01-13T21:03:44Z
Admin
1
/* Erweitern der Ethernet Library */
wikitext
text/x-wiki
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft müssen einige Optionen gesetzt werden. Hier ist eine eigene Subdomain zu empfehlen:
<source lang=bash>
<VirtualHost *:80>
ServerName emon.yourserver.de
ServerAlias emon
ServerAdmin your@mail.de
DocumentRoot /var/www/emon
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/emon>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/emon-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/emon-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
</source>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
7fe4daa62f9af32edb046b3300172596619eba5a
74
73
2012-01-14T10:54:05Z
Admin
1
/* Software auf dem Server */
wikitext
text/x-wiki
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
unp openenergymonitor-emoncms3-44264cd.tar.gz
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
3daf13d7a46e1cd464f00eb99dd9121188ac9536
75
74
2012-01-14T10:57:24Z
Admin
1
wikitext
text/x-wiki
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
ba9b5139620870912771470a0512c0d4f1282df4
77
75
2012-01-14T11:05:35Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
[[Datei:emon1.png|Emon Real Time Energie]]
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
6a5f6bf6c2d3cdc9136dd754ef9c24c81806d657
79
77
2012-01-14T11:48:47Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
[[Datei:emon1.png|Emon Real Time Energie]]
Symbolischer Aufbau der Komponenten:
[[Datei:emon2.png|Open Energie Monitor]]
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
8b08370e6d7a94fa9a663e85699099aafbe7dd18
80
79
2012-01-14T11:48:54Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
[[Datei:emon1.png|Emon Real Time Energie]]
Symbolischer Aufbau der Komponenten:
[[Datei:emon2.png|Open Energie Monitor]]
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
a26b51520c0d71672c4007299554c76491a2bc9b
81
80
2012-01-14T11:51:05Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
b95f2fa4c2eaf5d6a3ff3875820c08d35c112b00
82
81
2012-01-14T11:53:06Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
Folgende Bauteile werden benötigt:
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
c3cddbcefdd335c1b466c70350b4404fb7383fc6
83
82
2012-01-14T11:56:08Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A)
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
f6a4c2020f8cdf3f30bfe2e7e28ae9c641c3f72a
84
83
2012-01-14T12:02:52Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A)
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
=Aufbau=
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom.
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
ba653d6f3c4cb221f4831b1cbf5b7506642a993e
85
84
2012-01-14T12:06:13Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A)
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss.
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
59bfb92e85b50a77852e500d0bbfbbfad28a0468
87
85
2012-01-14T12:16:56Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A)
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
0e022012cd7855b63ee41a21dff07e28590f168c
89
87
2012-01-14T12:28:07Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
15406363ba1f7fd5909321b399a7514c2696fe22
91
89
2012-01-14T12:28:44Z
Admin
1
/* Converter Board */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
607412faece6fa5dae5c348585a743d78fa5abf8
93
91
2012-01-14T12:43:40Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
64abcbfbefa732a73bb5e7ac6503b0cc03d3a7e2
94
93
2012-01-14T12:44:11Z
Admin
1
/* Arduino Sketch */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
==Erweitern der Ethernet Library==
Um DHCP und DNS nutzen zu können muss eine modifizierte Ethernet Library installiert werden. Die Library muss in das Verzeichnis "libraries" in den Arduino Ordner. Ich habe diese Library verwendet:
http://www.mcqn.com/weblog/dhcp_and_dns_arduino
Danach bekommt das Board automatisch eine IP vom Router zugewiesen. Zudem kann der Arduino DNS Namen in IP Adressen auflösen.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
64fd340a91808710e4885f54af7db3c0c271673e
95
94
2012-01-14T12:45:05Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
fd80b3ddc9b09cd33622a0e20c5cea8bd59f04e0
96
95
2012-01-14T12:47:25Z
Admin
1
/* Einleitung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
e1facf54292a2cc2accc1f3ee1f53209e03b575d
98
96
2012-01-14T14:47:10Z
Admin
1
/* Arduino Sketch */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben.
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
33863d0a956096a8c054fdbf6e2d00ccc140e9d8
99
98
2012-01-14T14:49:01Z
Admin
1
/* Arduino Sketch */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
2ebe34e9150f86fa83bcedd3779d07ba59c947ce
Datei:Emon1.png
6
21
76
2012-01-14T11:03:31Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon2.png
6
22
78
2012-01-14T11:43:57Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon3.jpg
6
23
86
2012-01-14T12:11:52Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon4.jpg
6
24
88
2012-01-14T12:25:56Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon5.jpg
6
25
90
2012-01-14T12:28:14Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:USBemon.zip
6
26
92
2012-01-14T12:39:35Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon6.jpg
6
27
97
2012-01-14T14:44:22Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon7.png
6
28
100
2012-01-14T14:52:47Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon8.png
6
29
101
2012-01-14T15:01:08Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon9.png
6
30
102
2012-01-14T15:02:31Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Open Energy Monitor
0
20
103
99
2012-01-14T15:02:52Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
{{filepath:USBemon.zip}}
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
4126840e8a966da1f65e54df8527c8dd77627392
105
103
2012-01-14T15:17:23Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Hier ist mein Sketch:
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
40fce6debd227e11bfc6d1211f7942d69b155b35
107
105
2012-01-14T15:30:12Z
Admin
1
/* Arduino Sketch */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Hier ist mein Sketch:
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | ccze
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
c524fadf1c7783ec3c728156889cf76a9c06f942
108
107
2012-01-14T15:30:37Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Hier ist mein Sketch:
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
b70248b84b530fe8576652ffe40381dfb6975ec6
110
108
2012-01-14T15:38:00Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
Hier ist mein Sketch:
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
d889755bc9dfed3582a14518440db6e5ce37ea9d
111
110
2012-01-14T15:39:22Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Hier ist mein Sketch:
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
7fd3baaa00c3f511664eea60dba2d5b428fad706
112
111
2012-01-14T15:40:24Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
Hier ist mein Sketch:
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
b2f8d01621c9e92aea9d49a08d42171d7a6b9ef2
113
112
2012-01-14T15:40:54Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
9d270f6686092d676ae221d7e1739f652d7a8a04
114
113
2012-01-14T15:41:10Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
155a5aaab781339385811f411d7ce6189d37f5a9
115
114
2012-01-14T15:44:05Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
868ce656f6c541b289ffdc63a3377250ecb66ca5
116
115
2012-01-14T15:44:23Z
Admin
1
/* Ethernet Shield und emon */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
1646aa54b3488fe85b121a08b45f4bf1b83ee8e5
118
116
2012-01-14T15:47:54Z
Admin
1
/* Converter Board */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose:
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
79fb6f377e197b3ab7ab444e32c8b1936b651c93
119
118
2012-01-14T15:50:09Z
Admin
1
/* Converter Board */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
c28b8b71d1824a5780b2bd9e9b3257ce272521b8
120
119
2012-01-14T15:50:20Z
Admin
1
/* Converter Board */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
0ea9912f297034802cb521e8468a95cfcb52d68b
121
120
2012-01-14T15:51:47Z
Admin
1
/* Software auf dem Server */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
a97d5ce3a1d63da70885ceb2a0b41e1f1700570b
122
121
2012-01-14T15:55:35Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
4d4fe733177804bc4c12a8972caa9b85c56f1ee1
123
122
2012-01-14T15:56:03Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
ba5079bc0cda7fae1d48e955c8552215551cc2b3
125
123
2012-01-14T15:57:39Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
a07d227917e1bd737e1fad74996d658c43d134e5
126
125
2012-01-14T15:57:54Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
961f27f53f80ab0f5d36ca8e24cd32b7c9d208b5
127
126
2012-01-14T15:58:03Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
cfe59c86eb34f58830d287e4a8cf206b141b3c93
128
127
2012-01-14T16:00:08Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
21f772f798edb5310f830810ba1a32d041353c5c
129
128
2012-01-14T16:01:29Z
Admin
1
/* Weblinks */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or <input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
70282274ca30bf93a4d0f521f53f7d94912fb5c8
130
129
2012-01-14T16:02:08Z
Admin
1
/* User Registrierung abschalten */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
ba8481e667724fa8742729b76d0f26ec95a69ad8
131
130
2012-01-14T16:09:24Z
Admin
1
/* Weblinks */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
fbd8732538bb1cad99d01b610e82997a037dba11
133
131
2012-01-14T18:02:58Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
3b6f5faa810142254538f23be369d6096ec50224
136
133
2012-01-15T19:40:26Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird.
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
a2a99f7e6461b31cb4a8c56a5a09b51ef46d596a
148
136
2012-01-19T20:13:57Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
d32e64c158dbe9b4be5297ea8e30cd4e00c41080
149
148
2012-01-22T12:32:14Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten Api Key und die korrekte Feed ID einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
<source lang=php>
<iframe style="width:600; height:400px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" frameborder="1" scrolling="no"></iframe>
<iframe style="height: 500px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/bargraph.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
<br>
<div class="widget-container-v">
<div class="title">Watt</div>
<div class="dial" scale="1" units="W" max="3000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">KWh Test</div>
<div class="dial" scale="1" units="kW" max="5000" feed="power"></div>
<br><br>
</div>
<div class="widget-container-v">
<div class="title">Power now</div>
<div class="bar" scale="1000" units="W" max="500" feed="power"></div>
<br><br>
</div>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon13.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
b448a06b6feda907c13c6cc2b3acdd90efb668d5
151
149
2012-01-22T12:35:47Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten Api Key und die korrekte Feed ID einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
cf46b65733f15b10b048567ae4f7b2cc6caa584d
Datei:EthernetAndPowerInet.zip
6
31
104
2012-01-14T15:13:34Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon10.png
6
32
106
2012-01-14T15:28:59Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon11.jpg
6
33
109
2012-01-14T15:37:00Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon12.jpg
6
34
117
2012-01-14T15:47:02Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon13.png
6
35
124
2012-01-14T15:57:18Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon14.png
6
36
132
2012-01-14T17:59:25Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon15.jpg
6
37
134
2012-01-15T19:36:42Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon16.jpg
6
38
135
2012-01-15T19:39:27Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Hauptseite
0
1
137
63
2012-01-19T19:21:34Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Arduino (Städtisch Bühnen Münster)]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
5ea6987a6b0bb46f0465f2455cde9db403502eb4
138
137
2012-01-19T19:21:44Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Arduino Printer Control (Städtisch Bühnen Münster)]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
6c9964df3a28ca7ebb0c90c584a1bb456bdaa712
139
138
2012-01-19T19:22:22Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
08d88feb80e5b5a9aec15c9a68c254015a0ea09f
Arduino Printer Control (Städtische Bühnen Münster)
0
39
140
2012-01-19T19:34:44Z
Admin
1
Die Seite wurde neu angelegt: „=Einleitung= Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwic…“
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
ef4923c16a438a6cc7e0ad78bee60e1737a601e0
143
140
2012-01-19T19:47:37Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|Keyboard Belegung]]
648b2024993657c6155e5165c0565c3c1c088c47
144
143
2012-01-19T19:53:52Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|800px|Keyboard Belegung]]
Alle Fotos zum Projekt sind in meinem Picasa Album: https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek#
34d767143f148427b44c646c4a4ff3d2f1a3f2f1
145
144
2012-01-19T19:57:56Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|800px|Keyboard Belegung]]
Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek#|Picasa]
3704be431a00934a942b07ce5a5fc136c81ba4ae
146
145
2012-01-19T20:07:59Z
Admin
1
/* Einleitung */
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|800px|Keyboard Belegung]]
Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek#|Picasa]
56e8a11efca099af642c8ea1464fb69b00b898d8
147
146
2012-01-19T20:09:04Z
Admin
1
/* MIDI Steuerung */
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|800px|Keyboard Belegung]]
Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek?authuser=0&feat=directlink|Picasa]
1ee8c00aced1dd7de38c179722505a523a6309d5
Datei:KeyBoard.png
6
40
141
2012-01-19T19:40:49Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Theater1.jpg
6
41
142
2012-01-19T19:47:09Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Emon17.png
6
42
150
2012-01-22T12:34:36Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Open Energy Monitor
0
20
152
151
2012-01-22T12:37:09Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
f8063ca0467247896a61a9190569d005dee515dd
153
152
2012-01-22T12:39:59Z
Admin
1
/* Eigenes Dashboard erstellen */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend. 3 Spiegel Eier wurden zubereitet.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern:
vim /emon/Vis/kWhdZoomer/view.js
vim /emon/Vis/kWhdZoomer/kwhdzoomer.php
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
f971ec036c4f041642e4b3ae36123be37aa66121
154
153
2012-01-23T18:58:53Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern:
vim /emon/Vis/kWhdZoomer/view.js
vim /emon/Vis/kWhdZoomer/kwhdzoomer.php
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
8bcc2d33ad21b8a83a478b26185bee692bcdcc5d
Hauptseite
0
1
155
139
2012-02-15T18:38:05Z
Admin
1
/* Hardware */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
* [[Turnigy 9x]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
3de999e45eb00d068f56c0f6aa2b0e85c38acc34
172
155
2012-04-20T14:07:45Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
* [[Turnigy 9x]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
* [[Arduino und das Imax B6 Ladegerät]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
4ef726a6962a26bd9d1fb68a2ca20d8e3653459f
189
172
2018-02-04T14:02:07Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
* [[Turnigy 9x]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor mit Arduino]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
* [[Arduino und das Imax B6 Ladegerät]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
f6de54de1f4cba61274b088859b2f645fce84df8
190
189
2018-02-04T14:03:38Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
* [[Turnigy 9x]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
* [[Arduino und das Imax B6 Ladegerät]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
4ef726a6962a26bd9d1fb68a2ca20d8e3653459f
191
190
2018-02-04T14:04:05Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
* [[Turnigy 9x]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Open Energy Monitor mit ESP32]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
* [[Arduino und das Imax B6 Ladegerät]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
d77b7c36f5d925e2e872ad7e0d6fddacdfc33226
192
191
2018-02-04T14:04:18Z
Admin
1
/* Arduino */
wikitext
text/x-wiki
== Willkommen beim Technik Fan Wiki ==
== Linux und VDR ==
* [[Alle Senders eines Transponders anzeigen lassen]]
* [[Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten]]
* [[Der PC als Temperatur Sensor - Digitemp]]
* [[Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox]]
* [[ISDN Anrufbeantworter mit Capisuite]]
== Hardware ==
* [[Einfache Steuerung der parallelen Schnittstelle]]
* [[USB Steuerung mit dem Cypress CY7C6300 Mikrocontroller]]
* [[Isotronic 5 in 1 Detektor verbessern]]
* [[Turnigy 9x]]
== Arduino ==
* [[Arduino MIDI Input]]
* [[Open Energy Monitor]]
* [[Open Energy Monitor mit dem ESP32]]
* [[Arduino Printer Control (Städtische Bühnen Münster)]]
* [[Arduino und das Imax B6 Ladegerät]]
== Sonstiges ==
* [http://technik-fan.de/hirnschraube Link zu meiner alten Homepage]
04839fed6a17b8bc2e3632e42041a59ce3a1c4cf
Turnigy 9x
0
43
156
2012-02-15T18:44:30Z
Admin
1
Die Seite wurde neu angelegt: „In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann. * Kabel einlöten * Programmer anst…“
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude -c avrispv2 -p m64 -v -P usb
c0ed95a04282bed71a49639a5a2b4c562e50edc5
157
156
2012-02-15T19:02:04Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude -c avrispv2 -p m64 -v -P usb
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
a1d8333ecdf3dc4afb6638a68780850165031966
158
157
2012-02-15T19:11:41Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude -c avrispv2 -p m64 -v -P usb
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Um den Fehler zu beseitigen:
* Sender Ausschalten
* Alle Kabel zum Programmer verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
6b4c6ff74691ea62e0cee9b9d13413fdfbd017e7
159
158
2012-02-15T19:12:32Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude -c avrispv2 -p m64 -v -P usb
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Um den Fehler zu beseitigen:
* Sender Ausschalten
* Alle Kabel zum Programmer verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
3b5a6ad52876c979a326fd521909132124a4bc7d
160
159
2012-02-15T19:12:52Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude -c avrispv2 -p m64 -v -P usb
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
089ee660d3cd6dca2ffc69a44f8fe01c0dab6264
161
160
2012-02-15T19:13:41Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude -c avrispv2 -p m64 -v -P usb
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
avrdude -c avrispmkII -p m64 -v -P usb
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
920314bb224b1f8cb349887bd1dbd59cb303aa75
162
161
2012-02-15T19:13:52Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
avrdude -c avrispmkII -p m64 -v -P usb
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
dacdfd7e45235c8c6ba9589264050efc49ccc1d6
163
162
2012-02-15T19:14:27Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
avrdude -c avrispmkII -p m64 -v -P usb
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
2ed96ea41bc72932bc7c20fcfcd2d4d3a1f09f9d
164
163
2012-02-15T19:14:39Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
7985ed997686dcaf90a9df78744ee6799ff17ac1
165
164
2012-02-15T19:23:16Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
* Sender Einschalten
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
212ebfa70bd848a459ec8531083aac09f97c0a8e
166
165
2012-02-15T19:26:16Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
* Sender Einschalten
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Backup anlegen:
avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading flash memory:
Reading | ################################################## | 100% 12.38s
avrdude: writing output file "backupflash.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
0b7fc8679b5881cff759c509733760018419862e
167
166
2012-02-15T19:32:24Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
* Sender Einschalten
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Backup anlegen:
'''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading flash memory:
Reading | ################################################## | 100% 12.38s
avrdude: writing output file "backupflash.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
'''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading eeprom memory:
Reading | ################################################## | 100% 0.43s
avrdude: writing output file "backupeeprom.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Flashen:
Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren...
'''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb'''
3c92152dd970e3e39486c774142de7af30b1765f
168
167
2012-02-15T19:33:14Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
* Sender Einschalten
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Backup anlegen:
'''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading flash memory:
Reading | ################################################## | 100% 12.38s
avrdude: writing output file "backupflash.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
'''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading eeprom memory:
Reading | ################################################## | 100% 0.43s
avrdude: writing output file "backupeeprom.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Flashen:
Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren...
'''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb'''
<source lang=text>
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "th9x.bin"
avrdude: input file th9x.bin auto detected as raw binary
avrdude: writing flash (44956 bytes):
Writing | ################################################## | 100% 9.47s
avrdude: 44956 bytes of flash written
avrdude: verifying flash memory against th9x.bin:
avrdude: load data flash data from input file th9x.bin:
avrdude: input file th9x.bin auto detected as raw binary
avrdude: input file th9x.bin contains 44956 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 8.71s
avrdude: verifying ...
avrdude: 44956 bytes of flash verified
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
</source>
e58ad0f42d405801223a7125f4dda7d1f8aa2877
Arduino MIDI Input
0
16
169
62
2012-03-06T09:35:52Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
//Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250
int incomingByte = 0; // for incoming serial data
int temp = 0;
int i1=0;
void setup() {
Serial.begin(31250);
Serial3.begin(31250);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) {
if (temp == 144 or temp == 0) {
switch (incomingByte) {
case 96:
Serial.println("Note: 96");
break;
case 95:
Serial.println("Note: 95");
break;
case 94:
Serial.println("Note: 94");
break;
case 93:
Serial.println("Note: 93");
break;
}
}
temp = incomingByte;
Serial.println(incomingByte);
i1=0;
}
}
</source>
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
<source lang="text">
102
30
30
38
32
102
6
56
38
30
102
128
32
6
</source>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
=Quellen=
* http://www.rn-wissen.de/index.php/MIDI-Interface
c3d46e92153aa5178f285f269ca95d74d742195c
170
169
2012-03-06T09:36:34Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
//Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250
int incomingByte = 0; // for incoming serial data
int temp = 0;
int i1=0;
void setup() {
Serial.begin(31250);
Serial3.begin(31250);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) {
if (temp == 144 or temp == 0) {
switch (incomingByte) {
case 96:
Serial.println("Note: 96");
break;
case 95:
Serial.println("Note: 95");
break;
case 94:
Serial.println("Note: 94");
break;
case 93:
Serial.println("Note: 93");
break;
}
}
temp = incomingByte;
Serial.println(incomingByte);
i1=0;
}
}
</source>
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
<source lang="text">
102
30
30
38
32
102
6
56
38
30
102
128
32
6
</source>
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
=Quellen=
* http://www.rn-wissen.de/index.php/MIDI-Interface
cbcdc3816f42c305f2dbbd1f822a8e89019fcfe5
171
170
2012-03-06T09:37:05Z
Admin
1
wikitext
text/x-wiki
==Experimente mit dem Arduino Mega und Midi Input.==
'''Bauteile:'''
Diode: 1N 4148<BR>
Optokoppler: CNY 17F2<BR>
Widerstand: 220 Ohm, 2,2 kOhm<BR>
Lochrasterplatine: H25PR050<BR>
Din Buchse Halbrund<BR>
'''Arduino Sketch:'''
<source lang="c">
//Das Testprogramm gibt die MIDI Noten an der Seriellen Schnittstelle aus - Bitrate: 31250
int incomingByte = 0; // for incoming serial data
int temp = 0;
int i1=0;
void setup() {
Serial.begin(31250);
Serial3.begin(31250);
}
void loop() {
incomingByte = Serial3.read();
if (incomingByte != -1 and incomingByte != 248 and incomingByte != 254) {
if (temp == 144 or temp == 0) {
switch (incomingByte) {
case 96:
Serial.println("Note: 96");
break;
case 95:
Serial.println("Note: 95");
break;
case 94:
Serial.println("Note: 94");
break;
case 93:
Serial.println("Note: 93");
break;
}
}
temp = incomingByte;
Serial.println(incomingByte);
i1=0;
}
}
</source>
Es ergibt sich folgendes Bild mit der Arduino Serial Read Software beim Drücken der Tasten am Keyboard:
<source lang="text">
102
30
30
38
32
102
6
56
38
30
102
128
32
6
</source>
Schaltplan: http://www.rn-wissen.de/index.php/MIDI-Interface
[[Datei:midi1.png|links|gerahmt|Platine von vorne]]<BR>
[[Datei:midi2.png|links|gerahmt|Platine von hinten]]<BR>
[[Datei:midi3.png|links|gerahmt|Belegung des DIN Steckers - MIDI Input]]<BR>
c8b29fa929f1a5de44af84ffa468283d7d3005d4
Arduino und das Imax B6 Ladegerät
0
44
173
2012-04-20T14:09:43Z
Admin
1
Die Seite wurde neu angelegt: „=Einleitung= In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. ==Hardware== Damit der Ardui…“
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen
5ec88b7518e75793b1666e3685da0d23080f5da4
178
173
2012-04-20T14:29:07Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden.
67816be0dd29d9eda941c4c547582fbb6a33d28b
179
178
2012-04-20T14:31:52Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
a90a105b1ccf5ae6049477e5dcb85fbbea2c4717
180
179
2012-04-20T14:41:16Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
af3a2e3700e2aa76ab3dc0613e6254a94c4a44e5
182
180
2012-04-20T14:43:17Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
692a5389fbff093495618690fd3548744464d7b3
184
182
2012-04-20T14:50:27Z
Admin
1
/* Auswertung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
Turnigy 160 mAh (Hobbyking)
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
Lidl Loop Low Self Discharge Zelle (ähnlich Eneloop)
[[Datei:LidlLoop.jpg|800px|Imax B6]]
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
a5ffe664ceeed9c75ac1ffd563b0c92f26d42ce4
185
184
2012-04-20T14:51:39Z
Admin
1
/* Auswertung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
Turnigy 160 mAh (Hobbyking)
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop)
[[Datei:LidlLoop.jpg|800px|Imax B6]]
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
83c0bf61914b6a7f0ee3666bf6126be0f23aed90
186
185
2012-04-20T14:53:41Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
Turnigy 160 mAh (Hobbyking)
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop)
[[Datei:LidlLoop.jpg|800px|Imax B6]]
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
b415e712b80fb301fa9a5170da730d7dbde80594
187
186
2012-04-20T14:56:25Z
Admin
1
/* Auswertung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
Turnigy 160 mAh (Hobbyking)
Zugeführte Ladung: 130 mAh
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop)
Zugeführte Ladung: 2230 mAh
Entladen (200 mAh): 1720 mAh
[[Datei:LidlLoop.jpg|800px|Imax B6]]
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
392cbafc0b05efbd94ea9e13d34f7c02a5e9a53b
188
187
2012-04-20T14:56:54Z
Admin
1
/* Auswertung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
Turnigy 160 mAh (Hobbyking)
Zugeführte Ladung: 130 mAh
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop)
Zugeführte Ladung: 2230 mAh
Entladen (200 mAh): 1720 mAh
[[Datei:LidlLoop.jpg|800px|Imax B6]]
= Weblinks =
* http://jleopold.de/2010/12/17/turnigy-accucell-6-logview Poldis Page
* http://www.logview.info/vBulletin/downloads.php Logview Download
245c1a475e02dcb042e05f86aebad40186888758
Datei:Imaxb6 1.jpg
6
45
174
2012-04-20T14:16:19Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Imaxb6 2.jpg
6
46
175
2012-04-20T14:20:41Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Imaxb6 3.jpg
6
47
176
2012-04-20T14:23:38Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Imaxb6 4.jpg
6
48
177
2012-04-20T14:25:35Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:Lipo160mAh.jpg
6
49
181
2012-04-20T14:41:26Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:LidlLoop.jpg
6
50
183
2012-04-20T14:48:54Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Open Energy Monitor mit dem ESP32
0
51
193
2018-02-04T14:07:38Z
Admin
1
Die Seite wurde neu angelegt: „=Einleitung= In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. '''Fol…“
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
be96ed4bef0f36317d7c0d993a856eb8c95b3e4c
194
193
2018-02-04T14:16:56Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
Pinbelegung des DOIT ESP32 DEVKIT V1 Board:
https://github.com/playelek/pinout-doit-32devkitv1
5e749cb3c215fc9b545d8524659e38b256163171
195
194
2018-02-04T14:17:14Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
97672b4be56c2a0f3738ed6fb3e207b0cf719255
197
195
2018-02-04T14:37:03Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
[[Datei:ESP32 01|Open Energie Monitor mit dem ESP32]]
89b43a73c4384d2e0eb008395a7d1ed9cab6f56c
198
197
2018-02-04T14:37:28Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
7f85be94cd4af5a1186d0f6ad7ea1044b3aec7ec
199
198
2018-02-04T14:43:58Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten.
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
abe0fa36bd4765236c0c424cab244c18be72fdf3
201
199
2018-02-04T14:46:10Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten.
[[Datei:ESP32 02.png|Open Energie Monitor mit dem ESP32]]
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
4fe662c297f7235ca83b3ebe4f1c915e86656cbc
Datei:ESP32 01.png
6
52
196
2018-02-04T14:36:10Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:ESP32 02.png
6
53
200
2018-02-04T14:45:43Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Open Energy Monitor mit dem ESP32
0
51
202
201
2018-02-04T16:10:08Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten.
[[Datei:ESP32 02.png|700px|Open Energie Monitor mit dem ESP32]]
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
45e2656a410397349e552f76e51eb1c495074233
204
202
2018-02-04T16:11:49Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten.
[[Datei:ESP32 02.png|700px|Open Energie Monitor mit dem ESP32]]
Für den Aufbau werden nur wenige PIN's des ESP32 benötigt.
[[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]]
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
c674eac72c9ec4e024b6311f2f888121f72a3ba9
205
204
2018-02-04T16:12:34Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt.
[[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]]
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
df52e92ac159700dc64753b4303820e0b031f01e
207
205
2018-02-04T16:33:21Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt.
[[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]]
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
b300f74646544c716601a1b95bca61a1e38174be
208
207
2018-02-04T16:35:57Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt.
[[Datei:ESP32 03.png|700px|Klicken um das Bild zu vergrößern]]
[[Datei:ESP32 01.png|Open Energie Monitor mit dem ESP32]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird.
db8f65693af422415a02f1f65bbde22ab285247a
209
208
2018-02-04T16:36:34Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird.
493777fecf720f5f4d888100587d15aa6e773366
211
209
2018-02-04T16:45:05Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
2cbe61d451396f3109e8e5d5bd766dabf0a30611
212
211
2018-02-04T16:45:35Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 02.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
97ec6dc082ecf87f1337c3700723c99888e80849
215
212
2018-02-04T16:53:31Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 02.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
352fdc599668673fb67f693de001b26ca1df899c
216
215
2018-02-04T16:54:38Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
f75a12ad35e8e3b204409f1cb7f7d6b26d0b2a46
217
216
2018-02-04T16:58:55Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
e7778b9c93fca3825bd3f82d47f40ff36e8c4779
218
217
2018-02-04T18:17:04Z
Admin
1
/* Software */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
ce10c31bc1b42f5ac19858a66be0707759df10f9
219
218
2018-02-04T18:30:06Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Um die Stromsensoren zu kalibrieren müssen möglicherweise folgende Variablen geändert werden:
ICAL, inPinI1
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //0.998
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
d67fe2500e2fd5812caeea7c872ebf51412b5504
220
219
2018-02-04T18:33:53Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Um die Stromsensoren zu kalibrieren müssen möglicherweise folgende Variablen geändert werden:
ICAL = Kalibrierung
inPinI1 = ADC Pin
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //0.998
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
9d00620fac4b5aebca11cc92ce7ebba2b5e9a708
221
220
2018-02-04T18:34:22Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Um die Stromsensoren zu kalibrieren müssen möglicherweise folgende Variablen geändert werden:
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI); //0.998
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
d416e84f869fb07faa9650e03cee773f8d096873
222
221
2018-02-04T18:39:29Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
b1f1d9d1df323c771521f26b751057131c310494
223
222
2018-02-04T18:41:24Z
Admin
1
/* Software */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
cab5f78d03132ee2d6a3b6ec0ea5397d9b5d50d3
224
223
2018-02-04T18:42:33Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
d663a1ce3c3fdeb940d0aba8a0dfa4f222357666
225
224
2018-02-04T18:43:58Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut:
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
ee3b4fdd7f7b9e6edc2a8d726fced9cec93b9197
227
225
2018-02-04T18:50:45Z
Admin
1
/* Spezielle Hinweise für den ESP32 */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
0f8b4197b6748c44f93ab03f0df38f0bd2a0fff4
229
227
2018-02-04T18:59:17Z
Admin
1
/* Aufbau */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
753f473a9f337ff5e9cfcc0c7e74b0d4d35762e1
230
229
2018-02-04T19:03:36Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
2c5353fa7c96d42f9623b0f033c61ede755da2cb
231
230
2018-02-05T12:26:14Z
Admin
1
/* Aufbau */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
b911b7f3357bfd5341337e3d6cf7214f3d119c27
232
231
2018-02-05T12:26:49Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
17a2b52082c9310a44735f43c46ebba5701593d6
233
232
2018-02-05T12:29:46Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
'''inPinI1''' = ADC Pin
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
87d2b7e0dd7d783cb3eaec8238ee82352d7b9d40
234
233
2018-02-05T12:30:21Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
237c38f7e4d67a393739827d4e3add10620ba052
235
234
2018-02-05T12:32:13Z
Admin
1
/* Einleitung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
c098f044fe20cb322e1a48f5a976fac60b7c8a74
236
235
2018-02-05T12:39:32Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
f6d5f5d0e8e659a1d2b55f5b2323405a056ad3fd
237
236
2018-02-05T12:41:23Z
Admin
1
/* Spezielle Hinweise für den ESP32 */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
//WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
8554d6304cd0f692659f2ae93dd5ea9219ede7be
238
237
2018-02-05T12:42:46Z
Admin
1
/* Spezielle Hinweise für den ESP32 */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// put your setup code here, to run once:
}
//WiFi Part
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
ae09e040a1ad9f3c2ba23078eaf054d1f68b34ee
239
238
2018-02-05T12:43:53Z
Admin
1
/* Spezielle Hinweise für den ESP32 */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
507690fedfd422b6c4aa89ec63eb40cc74f2a486
241
239
2018-02-05T13:04:32Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Download Arduino Sketch==
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
fc7317b939130e7e9d33f297070e58b2ad100309
242
241
2018-02-05T13:06:18Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
Ihr müsst das Programm noch an Eure WLAN und EMON Server Werte anpassen.
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
8e6bcf4e21a1bbae89e1a44d4ba0a584cd87527b
243
242
2018-02-05T13:06:34Z
Admin
1
/* Download Arduino Sketch */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
'''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Werte anpassen.'''
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
d549d64ae39246acebab9a6629547dd99db8d2a4
244
243
2018-02-05T13:06:46Z
Admin
1
/* Download Arduino Sketch */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
'''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.'''
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
77f75e607ac757108feaeaeafe91283c033426b6
245
244
2018-02-05T13:09:11Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
'''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.'''
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
= Weblinks =
* https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page
a8028d0e7f1e5e9965050dffa5d41e51169d8ea8
246
245
2018-02-05T13:11:54Z
Admin
1
/* Kalibrierung */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
'''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.'''
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
= Weblinks =
* https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page
6a28091608cdea30a48cb82c064470f1301f6960
249
246
2018-02-06T07:07:14Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
'''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.'''
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
=Emoncms=
In Emoncms kann nun ein schönes Dashboard erstellt werden. Dazu gibt es bereits bei den Inputs die Funktionen "Power to kWh und Power to kWh/d".
[[Datei:ESP32 07.png|700px|Klicken um zu vergrößern]]
= Weblinks =
* https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page
32fa479a7f9bc92b8515e407c0b805fbd4d1ae15
250
249
2018-02-06T07:07:52Z
Admin
1
/* Emoncms */
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe einer ESP32 Platine ein Strom Sensor für 3 Phasen Wechselstrom aufgebaut werden kann. Der Spannungsteiler aus den 10kOhm Widerständen erzeugt 1,6V für die SCT-013-030 Strom Sensoren. Die Stromsensoren werden mit den ADC Pin's des ESP32 verbunden. Natürlich sind die Messungen nicht sonderlich genau, da die Phasenverschiebung und Spannung nicht berücksichtigt wird. Auch das wäre durch zusätzliche Transformatoren möglich die dann auf die ADC Pin's geführt werden. Da ich damit nur meinen ungefähren Stromverbrauch zuhause messen möchte ist die Schaltung völlig ausreichend. Die Kosten für die einzelnen Komponenten sollten 30€ nicht übersteigen.
'''Folgende Bauteile werden benötigt:'''
-Board: DOIT ESP32 DEVKIT V1 (ca. 10€)
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-6x 10kOhm Widerstände 1/4W
-3x Elko 10 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3 x 3,5 mm Audio Anschluss
-Optional: 1000uF / 10V Kondensator zur Stabilisierung
'''Pinbelegung des DOIT ESP32 DEVKIT V1 Board:'''
https://github.com/playelek/pinout-doit-32devkitv1
=Grundlagen=
Auf der Seite von Open Energy Monitor finden sich genügend Informationen über die Grundlagen der Leistungsberechnung. Das Prinzip lässt sich 1:1 vom Aufbau eines Arduinos übernehmen. Der ESP32 verkraftet jedoch maximal 3,3V am Analog Eingang.
https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
=Aufbau=
Auf die Lochrasterplatine müssen nur wenige Bauteile. Die Teile lassen sich relativ einfach einlöten. Für den Aufbau werden nur wenige PIN's des ESP32 benötigt. Bei meinem Aufbau gibt es am obersten Sensor Anschluss noch einen zusätzlichen Burden Widerstand von 200 Ohm. Das liegt daran das der SCT-013-030 Sensor schon einige Jahre alt ist. Bei den neuen Sensoren sind keine Burden Widerstände nötig, da diese schon einen 62 Ohm Burden eingebaut haben. Ein 1000uF Kondensator zwischen 5V und GND ist empfehlenswert, da je nach 5V Netzteil die Messwerte stark schwanken.
[[Datei:ESP32 03.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 05.png|700px|Klicken um zu vergrößern]]
[[Datei:ESP32 01.png|700px|Klicken um zu vergrößern]]
=Software=
Ich verwende zum programmieren immer die Arduino Gui. Es sind zuerst einige Anpassungen nötig damit das DOIT ESP32 Board von der Arduino Software erkannt wird. Hierzu muss diese Anleitung umgesetzt werden:
https://github.com/espressif/arduino-esp32
Nach dem Neustart der Arduino Software kann dann das passende ESP32 Board ausgewählt werden. In meinem Beispiel ist es ein DOIT V1 Board.
[[Datei:ESP32 04.png|700px|Klicken um zu vergrößern]]
==Spezielle Hinweise für den ESP32==
Bei der Programmierung des ESP32 gibt es ein paar Dinge zu beachten. Auf den Boards ist meist ein passender Spannungsregler für 3,3V und ein passender FTDI Chip aufgelötet. Somit entfällt eine weitere Schaltung zur Spannungsversorgung. Zudem wird das Board vom FTDI Chip durch die Arduino Software automatisch in den "Upload Modus" versetzt. Man muss also nicht wie beim ESP8266 bestimmte Taster drücken (Flash und Reset) um das Board in den "Upload Modus" zu bringen.
Ich habe öfters die WifiManager Library für das WLAN verwendet. Auf Dauer hatte ich damit jedoch immer wieder Probleme, so das ich meine WLAN Daten mit Absicht "fest" in das Programm einbaue. Zudem ergibt sich beim WLAN noch ein Problem wenn auf einmal die WLAN Verbindung unterbrochen wird, z.B. wenn der Router neu gestartet wird. Danach verbindet sich der ESP32 nämlich nicht mehr automatisch mit dem WLAN. Um das zu verhindern habe ich folgende Funktion in den Code eingebaut. Die Funktion WifiEvent startet den ESP32 neu wenn keine Verbindung mehr zum WLAN besteht. Leider funktioniert jeder andere Weg im Moment nicht zuverlässig.
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
//WiFi
const char* ssid = "AccessPoint";
const char* password = "pass";
//WiFi
void WIFI_Connect()
{
digitalWrite(2,1);
WiFi.disconnect();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
// Wait for connection
for (int i = 0; i < 25; i++)
{
if ( WiFi.status() != WL_CONNECTED ) {
delay ( 250 );
digitalWrite(2,0);
Serial.print ( "." );
delay ( 250 );
digitalWrite(2,1);
}
}
digitalWrite(2,0);
}
void setup() {
Serial.begin(115200);
delay(500);
//WiFi Part
WIFI_Connect();
}
void loop() {
//Wifi WatchDog
WiFi.onEvent(WiFiEvent);
//Check if WiFi is here
//Automatically reconnect the ESP32 if the WiFi Router is not there...
if (WiFi.status() != WL_CONNECTED)
{
WiFi.onEvent(WiFiEvent);
WIFI_Connect();
} else {
//Do something if the WiFi is available
}
}
//Wifi Watchdog
void WiFiEvent(WiFiEvent_t event) {
Serial.printf("[WiFi-event] event: %d - ", event);
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: "); Serial.println(WiFi.localIP());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
Serial.println("WiFi lost connection");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
case SYSTEM_EVENT_STA_START:
Serial.println("ESP32 station start");
break;
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 station connected to AP");
break;
case SYSTEM_EVENT_STA_LOST_IP:
Serial.println("ESP32 Lost IP");
WiFi.begin(); // <<<<<<<<<<< added <<<<<<<<<<<<<<<
ESP.restart();
break;
}
}
</source>
==Kalibrierung==
Als nächstes müssen die Stromsensoren kalibriert werden. Dazu sollten folgende Variablen angepasst werden. Die Kalibrierung habe ich mit einer 100W Lampe und einem Wasserkocher 1800W durchgeführt. Eine genaue Stromzange oder eine Wattmeter sind sehr nützliche Hilfsmittel. In meinem Fall kann der SCT-013-030 als kleinste Einheit 100mA Strom erkennen. Die Sensoren haben 1800 Wicklungen und einen 62 Ohm Burden Widerstand. Der Offset Wert sollte nicht am PC USB Port sondern an einem separaten 5V Netzteil kalibriert werden. Denn die meisten PC USB Anschlüsse liefern bei 200mA nur noch eine Spannung von 4,5V.
'''ICAL''' = Kalibrierung
filteredI = '''0.9989''' * (lastFilteredI+sampleI-lastSampleI); //Kalibrierung
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - '''0.06''';//Offset
<source lang=c++>
#include <Arduino.h>
#include <WiFi.h>
void setup() {
Serial.begin(115200);
delay(500);
}
//Setup variables
int numberOfSamples = 4000;
double ICAL = 1.08;
//Set Voltage and current input pins
int inPinI1 = 34;
// CT: Voltage depends on current, burden resistor, and turns
#define CT_BURDEN_RESISTOR 62
#define CT_TURNS 1800
#define VOLTAGE 225
// Initial gueses for ratios, modified by VCAL/ICAL tweaks
double I_RATIO = (long double)CT_TURNS / CT_BURDEN_RESISTOR * 3.3 / 4096 * ICAL;
//Filter variables 1
double lastFilteredI, filteredI;
double sqI,sumI;
//Sample variables
int lastSampleI,sampleI;
double Irms1;
unsigned long timer;
void loop() {
timer = millis();
//**************************************************************************
//Phase1
for (int n=0; n<numberOfSamples; n++)
{
//Used for offset removal
lastSampleI=sampleI;
//Read in voltage and current samples.
sampleI = analogRead(inPinI1);
//Used for offset removal
lastFilteredI = filteredI;
//Digital high pass filters to remove 1.6V DC offset.
filteredI = 0.9989 * (lastFilteredI+sampleI-lastSampleI);
//Root-mean-square method current
//1) square current values
sqI = filteredI * filteredI;
//2) sum
sumI += sqI;
delay(0.0002);
}
//Calculation of the root of the mean of the voltage and current squared (rms)
//Calibration coeficients applied.
Irms1 = (I_RATIO * sqrt(sumI / numberOfSamples)) - 0.06;
if (Irms1 < 0){ Irms1 = 0; }; //Set negative Current to zero
sumI = 0;
Serial.println("Irms1:"+String(Irms1));
}
</source>
==Download Arduino Sketch==
'''Achtung: Ihr müsst das Programm noch an Eure WLAN und EMON Server Parameter anpassen.'''
[[Media:EmonCMS ESP32 v1.zip|Download Arduino Sketch: Emon ESP32]]
=Emoncms=
In Emoncms kann nun ein schönes Dashboard erstellt werden. Dazu gibt es bereits bei den Inputs die Funktionen "Power to kWh und Power to kWh/d".
[[Datei:ESP32 07.png|700px|Klicken um zu vergrößern]]
Die Werte können nun alle im Dashboard angezeigt werden.
[[Datei:ESP32 06.png|700px|Klicken um zu vergrößern]]
= Weblinks =
* https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino Official Page
ccccf97816c19954ef28f029b7f6f9e661c434f7
Datei:ESP32 03.png
6
55
203
2018-02-04T16:11:14Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
206
203
2018-02-04T16:13:38Z
Admin
1
Admin lud eine neue Version von „[[Datei:ESP32 03.png]]“ hoch
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
210
206
2018-02-04T16:44:12Z
Admin
1
Admin lud eine neue Version von „[[Datei:ESP32 03.png]]“ hoch
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
213
210
2018-02-04T16:48:15Z
Admin
1
Admin lud eine neue Version von „[[Datei:ESP32 03.png]]“ hoch
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:ESP32 04.png
6
56
214
2018-02-04T16:49:04Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Open Energy Monitor
0
20
226
154
2018-02-04T18:47:39Z
Admin
1
wikitext
text/x-wiki
'''Achtung: Es gibt inzwischen eine neue Version des Open Energy Monitors mit dem ESP32 und WLAN: [[Open Energy Monitor mit dem ESP32]]'''
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern:
vim /emon/Vis/kWhdZoomer/view.js
vim /emon/Vis/kWhdZoomer/kwhdzoomer.php
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org/emon/emoncms Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
9344ce86628d406d3972828bd83265c5eed67df2
Datei:ESP32 05.png
6
57
228
2018-02-04T18:58:42Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:EmonCMS ESP32 v1.zip
6
58
240
2018-02-05T13:03:05Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:ESP32 06.png
6
59
247
2018-02-06T07:03:43Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Datei:ESP32 07.png
6
60
248
2018-02-06T07:05:42Z
Admin
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten
0
3
253
13
2025-02-25T14:45:30Z
Admin
1
wikitext
text/x-wiki
'''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!'''
In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar.
WLAN Verbindung im Netzwerkmanager deaktivieren:
rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen
ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen
ifconfig
eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC:
inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0
inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:126 errors:0 dropped:0 overruns:0 carrier:2
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b)
Speicher:fbfc0000-fc000000
Physische WLAN Schnittstelle herunterfahren:
ifconfig wifi0 down
Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen:
wlanconfig ath10 create wlandev wifi0 wlanmode monitor
Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst):
iwconfig
ath01 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Channel:0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Physische Schnittstelle hochfahren:
ifconfig wifi0 up
Airmon Schnittstelle zuweisen:
airmon-ng start ath01
Airodump starten:
airodump-ng ath01
Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt.
Test
[[Datei:Airodump-wlans.png|Airodump WLAN]]
d89f33d9c77555d91a67db0d2af96bedb55197dc
Atheros und Madwifi: Das WLAN im EEE-PC in den Promiscuous Mode schalten
0
3
254
253
2025-02-25T14:45:43Z
Admin
1
wikitext
text/x-wiki
'''Achtung: Das Mitschneiden von Internetverkehr in fremden Netzwerken ist strafbar. Diese Anleitung bezieht sich auf das eigene WLAN Netzwerk! Der Author übernimmt keine Haftung für irgendwelche Schäden!'''
In dieser Anleitung wird beschrieben wie sich eine Netzwerkkarte unter Debian/Ubuntu in den Promiscuous Mode schalten lässt. Als Grundlage dient der Madwifi Treiber. Eine Liste der unterstützten Hardware Komponenten ist hier verfügbar.
WLAN Verbindung im Netzwerkmanager deaktivieren:
rechte Maustaste auf das Netzwerksymbol, Haken bei Enable Wireless entfernen
ifconfig sollte nun nur noch die Ethernet Schnittstelle eth0 anzeigen
ifconfig
eth0 Protokoll:Ethernet Hardware Adresse 00:1E:8C:BC:
inet Adresse:192.168.1.102 Bcast:192.168.1.255 Maske:255.255.255.0
inet6 Adresse: fe80::21e:8cff:/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:126 errors:0 dropped:0 overruns:0 carrier:2
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:13587 (13.2 KB) TX bytes:0 (0.0 b)
Speicher:fbfc0000-fc000000
Physische WLAN Schnittstelle herunterfahren:
ifconfig wifi0 down
Virtuelle Schnittstelle im Monitor Modus (Promiscuous Mode) erstellen:
wlanconfig ath10 create wlandev wifi0 wlanmode monitor
Ein iwconfig sollte uns nun unsere neue virtuelle Schnittstelle anzeigen (Die Schnittstelle ath wird durchlaufend nummeriert, es kann also sein das diese bei euch anders heisst):
iwconfig
ath01 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Channel:0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-94 dBm Noise level=-94 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Physische Schnittstelle hochfahren:
ifconfig wifi0 up
Airmon Schnittstelle zuweisen:
airmon-ng start ath01
Airodump starten:
airodump-ng ath01
Nun sollte Airodump alle Informationen zu den gefundenen WLAN Netzwerken anzeigen. In diesem Fall werden auch versteckte Netzwerke angezeigt.
[[Datei:Airodump-wlans.png|Airodump WLAN]]
f84c21958bb4cdc2c675027deaa1ad2cc131b1fb
Arduino Printer Control (Städtische Bühnen Münster)
0
39
255
147
2025-02-25T14:46:57Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
Test
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|800px|Keyboard Belegung]]
Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek?authuser=0&feat=directlink|Picasa]
41659d58991bed9d0d4224c53af3a904623eed8b
256
255
2025-02-25T14:47:02Z
Admin
1
/* Einleitung */
wikitext
text/x-wiki
=Einleitung=
Für die Aufführung der "Winterreise" von Elfriede Jelinek mussten 40 Drucker gleichzeitig angesteuert werden. Ich habe dafür eine Schaltung entwickelt, die es ermöglicht alle Drucker gleichzeitig anzusteuern. Im "Herzen" der Schaltung befindet sich ein Arduino Mega 2560. Dieser steuert an den IO-Ports die seriellen Printer Module vom Typ: BAS-120 an. Die Drucker werden über ein MIDI Keyboard angesprochen. So habe ich jeder Taste auf dem Keyboard einem Drucker zugeordnet. Über spezielle Tasten ist es möglich alle Drucker anzusprechen.
=MIDI Steuerung=
Siehe: [[Arduino MIDI Input]]
[[Datei:KeyBoard.png|Keyboard Belegung]]
[[Datei:Theater1.jpg|800px|Keyboard Belegung]]
Alle Fotos zum Projekt sind in meinem Picasa Album: [https://picasaweb.google.com/112556810584672853030/ArduinoTheaterProjektWinterreiseVonElfriedeJelinek?authuser=0&feat=directlink|Picasa]
1ee8c00aced1dd7de38c179722505a523a6309d5
Fernsehen mit der XBOX - Installation von Xineliboutput auf der xBox
0
7
257
28
2025-02-26T12:49:00Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="bash" line>
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
fce93d75b75feb1a696ef2fb122c88df5e3bc834
258
257
2025-02-26T12:49:52Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="C" line>
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
f08d725b90e55b1561ddc158ecfd0bf95e08c18f
259
258
2025-02-26T12:50:30Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="bash" line>
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
fce93d75b75feb1a696ef2fb122c88df5e3bc834
260
259
2025-02-26T12:55:54Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="bash">
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
3afaa6208d48251df1b5ba947461b4bd965e0202
261
260
2025-02-26T12:56:10Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="bash">
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
06d0af86c00e81bc5ca934cddaea42bb1ffaeaf2
262
261
2025-02-26T13:24:50Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="bash">
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
<syntaxhighlight lang="python" line>
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
</syntaxhighlight>
a6c33c31282d33adea9ac2487cf29f94c2024ca9
263
262
2025-02-26T13:26:34Z
Admin
1
wikitext
text/x-wiki
==Diese Anleitung orientiert sich an einem Wiki Eintrag und beschreibt die Installation von Xineliboutput mit Hilfe von Xebian auf der XBOX.==
1. Als erstes muss Xebian auf der XBOX installiert werden. Dazu benötigt ihr eine XBOX auf der unsignierte Software läuft. Das Image gibt es hier zum herunterladen.
2. Debian Grundkonfiguration:
Nameserver anpassen:
vim /etc/resolv.conf
Standard Software installieren:
apt-get update
apt-get install vim unp bzip2
Exim4 entfernen, da Mailserver nicht benötigt wird:
apt-get remove --purge exim4
Syntax Highlighting aktivieren:
vim /etc/vim/vimrc
Die Zeile
" syntax on
einkommentieren
syntax on
Falls DHCP gewünscht wird müssen die Interfaces angepasst werden:
vim /etc/network/interfaces
In diesem Fall muss das static in dhcp geändert werden, die 3 Zeilen darunter werden auskommentiert.
vim /etc/apt/sources.list
<syntaxhighlight lang="bash">
deb http://ftp.at.debian.org/debian/ stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
#Debian Multimedia
deb http://www.debian-multimedia.org etch main
deb-src http://debian-multimedia.org etch main
# VDR
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
</syntaxhighlight>
apt-get update
'''ACHTUNG NICHT: apt-get upgrade ausführen'''
Nun verbindet man sich am besten per SSH zur XBOX.
3. XServer Installation:
apt-get install xserver-xorg xineliboutput-sxfe xterm xfonts-base xfonts-base
vim /etc/X11/xorg.conf
<source lang=bash>
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce3 MX for XBox"
# Driver "nv"
Driver "nvxbox"
Option "UseFBDev" "true"
Option "HWCursor" "false"
# Option "NoAccel" "true"
EndSection
Section "Device"
Identifier "Frame Buffer"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-32
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce3 MX for XBox"
# Device "Frame Buffer"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "640x480"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
</source>
4. Init Skript anpassen:
vim /etc/init.d/xorg
<source lang=bash>
#! /bin/sh
### BEGIN INIT INFO
# Provides: X4VDR
# Required-Start: $local_fs
# Required-Stop: vdr
# Default-Start: 2
# Default-Stop:
# Short-Description: X-Server for VDR
# Description: Starts the X-Server for the VDR.
### END INIT INFO
#
# Author: Helmar Gerloni <helmar@gerloni.net>
# Version: 2006-09-13
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="X-Server for VDR"
NAME=X4VDR
PIDFILE=/var/run/$NAME\.pid
SCRIPTNAME=/etc/init.d/$NAME
#
# Function that starts X.
#
d_start() {
vdr-sxfe --tcp --reconnect --syslog --fullscreen --video=xv xvdr://vdr.server.ip:37890 > /dev/null 2&>1 &
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --exec /usr/bin/X -- :0 vt7 -br -nolisten tcp
if [ $? -gt 0 ]; then
echo "Error starting X-Server."
exit $?
fi
}
#
# Function that stops X.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE
if [ $? -gt 0 ]; then
echo "Error stopping X-Server."
fi
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
</source>
Das Script ausführbar machen mit:
chmod ug+x /etc/init.d/xorg
Das VDR Script startet nun den X-Server und zugleich vdr-sxfe. Zum starten und testen einfach:
/etc/init.d/xorg start
eingeben
06d0af86c00e81bc5ca934cddaea42bb1ffaeaf2
Alle Senders eines Transponders anzeigen lassen
0
2
264
8
2025-02-26T13:28:01Z
Admin
1
wikitext
text/x-wiki
'''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen'''
In das VDR Verzeichniss wechseln:
cd /etc/vdr
Die Senderliste anzeigen lassen:
vim channels.conf
Für das Erste z.B. erscheint dieser Eintrag:
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
Die Nummer des Transponders beträgt in diesem Fall: 410000.
Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt:
grep 410000 channels.conf
Ausgabe:
<syntaxhighlight lang="bash">
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0
BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0
arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0
hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0
Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0
SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0
Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0
Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0
<\syntaxhighlight>
1dbbf5133b30960b828659d35716a0c77a3b2747
265
264
2025-02-26T13:28:25Z
Admin
1
wikitext
text/x-wiki
'''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen'''
In das VDR Verzeichniss wechseln:
cd /etc/vdr
Die Senderliste anzeigen lassen:
vim channels.conf
Für das Erste z.B. erscheint dieser Eintrag:
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
Die Nummer des Transponders beträgt in diesem Fall: 410000.
Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt:
grep 410000 channels.conf
Ausgabe:
<syntaxhighlight lang="bash">
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0
BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0
arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0
hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0
Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0
SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0
Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0
Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0
</syntaxhighlight>
e79ced5e9fee43e121ad576a899b1301902f33bd
266
265
2025-02-26T13:28:33Z
Admin
1
wikitext
text/x-wiki
'''Hier eine einfache Möglichkeit um sich alle Senders eines Transponders anzeigen zu lassen'''
In das VDR Verzeichniss wechseln:
cd /etc/vdr
Die Senderliste anzeigen lassen:
vim channels.conf
Für das Erste z.B. erscheint dieser Eintrag:
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
Die Nummer des Transponders beträgt in diesem Fall: 410000.
Durch ein grep auf die channels.conf (Suche nach der Transponderfrequenz) werden alle Sender des Transponders angezeigt:
grep 410000 channels.conf
Ausgabe:
<syntaxhighlight lang="C">
Das Erste;ARD:410000:C0M64:C:6900:101:102=deu,103=2ch;106=dd:104:0:28106:1:1101:0
WDR Köln;ARD:410000:C0M64:C:6900:601:602=deu:604:0:28111:1:1101:0
BR-alpha;ARD:410000:C0M64:C:6900:701:702=deu:704:0:28112:1:1101:0
arte;ARD:410000:C0M64:C:6900:401:402=deu,403=fra:404:0:28109:1:1101:0
hr-fernsehen;ARD:410000:C0M64:C:6900:301:302=deu:304:0:28108:1:1101:0
Phoenix;ARD:410000:C0M64:C:6900:901:902=deu:904:0:28114:1:1101:0
SWR Fernsehen BW;ARD:410000:C0M64:C:6900:801:802=deu:804:0:28113:1:1101:0
Bayerisches FS;ARD:410000:C0M64:C:6900:201:202=deu,203=2ch:204:0:28107:1:1101:0
Test-R;ARD:410000:C0M64:C:6900:701:702:204:0:28130:1:1101:0
</syntaxhighlight>
b85ef3390a094d15ab2caa96b4a944376e05bc7e
Arduino und das Imax B6 Ladegerät
0
44
267
188
2025-02-26T13:29:21Z
Admin
1
wikitext
text/x-wiki
=Einleitung=
In dieser Anleitung wird beschrieben wie das Ladegerät Imax B6 über einen Arduino mit dem PC verbunden werden kann. Der Vorteil ist das einfach ein USB Kabel zur Datenübertragung genützt werden kann.
==Hardware==
Damit der Arduino nicht booten kann wird ein Kabel von Masse nach Reset angeschlossen. Als Stecker kann man einfach eine Buchsenleiste (Rastermaß 2,54) feilen damit diese in den Anschluß vom Imax B6 passt.
[[Datei:Imaxb6 1.jpg|Imax B6]]
=Aufbau=
Anschluß des Imax B6 Ladegerätes an den Arduino
[[Datei:Imaxb6 3.jpg|Imax B6]]
Um mit dem Imax B6 auch kleine 160 mAh LiPos zu laden habe ich mir aus einer Universal Platine diesen Adapter zum Laden gebaut.
[[Datei:Imaxb6 2.jpg|Imax B6]]
Der ganze Aufbau mit dem Ladegerät sieht dann so aus:
[[Datei:Imaxb6 4.jpg|Imax B6]]
==Auswertung==
Nach der Arduino Treiber Installation können die Daten am einfachsten mit dem Tool Logview aufgezeichnet und gespeichert werden. Logview kann hier heruntergeladen werden: http://logview.info
Turnigy 160 mAh (Hobbyking)
Zugeführte Ladung: 130 mAh
[[Datei:Lipo160mAh.jpg|800px|Imax B6]]
Lidl Loop Low Self Discharge Mignon Zelle (ähnlich Eneloop)
Zugeführte Ladung: 2230 mAh
Entladen (200 mAh): 1720 mAh
[[Datei:LidlLoop.jpg|800px|Imax B6]]
bb0c3568afb9d779a6327ba71ff4a02f85976646
Der PC als Temperatur Sensor - Digitemp
0
5
268
37
2025-02-26T13:29:59Z
Admin
1
wikitext
text/x-wiki
'''Dieser Artikel beschäftigt sich mit der Temperatur Messung unter Debian Linux. Als Grundlage dient das Digitemp Projekt für den seriellen Anschluss, da die Bauteile günstig zu beschaffen sind und jeder Server mit einer COM Schnittstelle ausgestattet ist.'''
Als erstes sollte man sich ein altes Modem Kabel für die Bauteile besorgen. Man kann dann alles direkt an den Stecker anlöten. Eine ausführliche
Bauanleitung findet ihr hier:
https://systemausfall.org/wikis/howto/DigiTemp
Nun müssen wir das Programm digitemp installieren:
apt-get install digitemp
Konfiguration initialisieren:
digitemp_DS9097 -i -s0 -q -c /root/digitemp.cfg
Jetzt muss Digitemp der Sensor "mitgeteilt" werden mit:
digitemp_DS9097 -i ttyS0
Die Ausgabe sollte dann so aussehen:
Searching the 1-Wire LAN
106C6C7C000000 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 106C6C7C01080012
Wrote .digitemprc
Damit man das ganze schön als Graphen anzeigen lassen kann müssen noch die rrdtools installiert werden:
apt-get install rrdtool
Nun erstellen wir ein paar Scripte unter /auktion/rrdtool
cd /auktion/rrdtool
vim erzeugepng.sh
Die Datei sollte mit folgendem Inhalt gefüllt werden:
nice -n 19 /usr/bin/rrdtool graph /var/www/temperatur.png -a PNG -b 1024 --start -129600 -A \
-l 0 -u 30 -t "Zimmer Temperatur" --vertical-label "Grad Celsius" -w 600 -h 200 \
DEF:g1=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:AVERAGE \
DEF:gmin=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MIN \
DEF:gmax=/auktion/rrdtool/temperatur/temperatur.rrd:gehaeuse:MAX \
VDEF:g1a=g1,LAST \
VDEF:gmina=gmin,MINIMUM \
VDEF:gmaxa=gmax,MAXIMUM \
LINE2:g1#ff0000:"Zimmer Temperatur" \
GPRINT:g1a:"aktuell\: %5.2lf °C" \
COMMENT:"(Last updated\: $(/bin/date "+%d.%m.%Y %H\:%M\:%S"))\n"
Datei ausführbar machen mit:
chmod ug+x erzeugepng.sh
Wenn alles geklappt hat erscheint nach Eingabe von:
./erzeugepng.sh
unter dem Ordner /var/www/temperatur.png die Grafik...
a76514ac1d3e539a75d2956fc58875f4bb25687f
Einfache Steuerung der parallelen Schnittstelle
0
6
269
24
2025-02-26T13:30:33Z
Admin
1
wikitext
text/x-wiki
Ziel dieser Beschreibung ist es, die parallele Schnittstelle über ein Webinterface steuern zu können.
Ich verwende eine Schaltung aus 4 Leds, die auf eine Rochlasterplatine gelötet wurden. Damit kann man sich sehr leicht den Zustand der einzelnen Ports anzeigen lassen. Ich verwende dabei keine Vorwiderstände da ich ultra helle LED's genommen habe. Zur Sicherheit empfiehlt es sich aber 100 Ohm Vorwiderstände zu verwenden.
Im wesentlichen gibt es zwei Möglichkeiten den parallelen Port unter Debian zu steuern. Zum einen lässt sich der Port direkt per Speicher Adresse aus einem C Programm heraus schreiben und lesen. Nachteil dabei: Speicher Adressen darf nur Root schreiben. Es ist also nicht möglich das ganze per www-data User aus einer Website heraus zu starten.
Die andere Möglichkeit besteht darin den Hardware Zugriff über ein C Programm das ein paar Linux Kernel Module benötigt vorzunehmen. Die Module können wiederum einem bestimmten Linux User oder einer Gruppe angehören. So kann der parallele Port dann auch über ein Webfrontend (PHP, Ajax etc.) gesteuert werden. Auf diese Möglichkeit möchte ich hier genauer eingehen.
Als erstes sollten die benötigten Module geladen werden:
modprobe parport
modprobe ppdev
lsmod|grep parport
sollte dann folgende Ausgaben produzieren:
parport_pc 32132 0
parport 33256 2 ppdev,parport_pc
nun benötigen wir den gcc und alle Programme die zum kompilieren nötig sind:
apt-get install build-essential
nun legen wir uns einen Ordner zum kompilieren an. Für alle die wenig Erfahrung im kompilieren von Linux Software haben biete ich hier meine kompilierte ausführbare Datei zum Download an. (Debian etch 2.6.18-6-686):
mkdir /usr/src/blink
cd /usr/src/blink
Darin speichern wir unsere C Quellcode Datei mit folgendem Inhalt:
vim blink.c
Inhalt, das Programm stammt übrigens aus diesem Forumbeitrag:
<syntaxhighlight lang="C">
/*Dieser Code laesst LEDs die an Pins 2...9 (Datenregister)
angeschlossen sind blinken. */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/ppdev.h>
#include <linux/parport.h>
#include <sys/ioctl.h>
int main()
{
int fd,loop=0;
unsigned char datareg=0xFF;
unsigned char controlreg=0x00;
struct ppdev_frob_struct frob;
/*parallele Schnittstelle öen*/
if((fd = open ("/dev/parport0", O_RDWR))!=-1)
{
ioctl (fd, PPCLAIM);
}
else
{
printf("Konnte Schnittstelle nicht oeffnen\n");
return 1;
}
/*Pins 2..9 als Ausgang konfigurieren*/
frob.mask = 0x20;
frob.val =0x00;
ioctl (fd, PPFCONTROL, &frob);
/*10 mal LEDs ein- und ausschalten*/
while ((loop++)<1)
{
datareg=0xFF;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
datareg=0x00;
ioctl(fd,PPWDATA ,&datareg);
sleep(1);
}
/*parallele Schnittstelle schliessen*/
ioctl(fd,PPRELEASE);
close(fd);
return 0;
}
</syntaxhighlight >
Dann wird ein kleines Makefile erstellt:
vim Makefile
Inhalt:
<source lang=bash>
CC = gcc
PROG = blink
all:
$(CC) -c $(PROG).c
$(CC) -o $(PROG) $(PROG).o
clean:
rm -f $(PROG) $(PROG).o *~
</source>
Nun kompilieren wir das ganze mit:
make
und schon erscheint eine ausführbare Datei mit dem Namen blink. Wir starten die Datei mit:
./blink
Jetzt sollten die LED's an der parallelen Schnittstelle aufblinken...Um zu testen ob das Programm auch als www-data User läuft, könnnen wir das Programm als www-data ausführen:
su www-data
./blink
Wenn alles bis dahin klappt können wir uns ein PHP Skript schreiben das dieses Programm über ein Webfrontend aufrufen kann. Ich verwende hier ein einfaches Beispiel um die Funktion darzustellen. Achtung: Wegen Sicherheitslücken sollte das Programm nur zu Testzwecken benützt werden.
apt-get install apache php5
cd /var/www
mkdir blink
chown www-data www-data ../*
vim index.php
Inhalt der Datei index.php:
<source lang=html4strict>
<HTML>
<TITLE>Parallele Schnittstelle per Webfrontend steuern...</TITLE>
</HEAD>
<BODY>
<font face="arial">
<CENTER><h3>Öffnet beim Neu Laden den Parallelport...</h3></CENTER>
<body bgcolor=ffffe9>
</BODY>
</HEAD>
<CENTER>
<html>
<?php
shell_exec('/usr/src/blink');
echo exec('whoami');
?>
</center>
</source>
Nun sollte beim Aufrufen oder Aktualisieren der Seite ein blinken der LED's sichtbar sein. Es sind nun diverse Funktionen möglich. Z.B. können über Optokoppler Relais geschaltet werden. Über diese Relais können so Verbraucher übers Internet geschaltet werden. Zudem kann das ganze mit einem Netzwerkkabel an den S0 Bus der Telefonanlage angeschlossen werden (siehe: CAPI, Asterisk etc.).
507eb6343e8fbd2da7584348a4ec6afe59f86b9e
Open Energy Monitor
0
20
270
226
2025-02-26T13:31:32Z
Admin
1
/* Weblinks */
wikitext
text/x-wiki
'''Achtung: Es gibt inzwischen eine neue Version des Open Energy Monitors mit dem ESP32 und WLAN: [[Open Energy Monitor mit dem ESP32]]'''
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern:
vim /emon/Vis/kWhdZoomer/view.js
vim /emon/Vis/kWhdZoomer/kwhdzoomer.php
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org Official Page
* http://vis.openenergymonitor.org Open Energie Monitor Version 3
* http://openenergymonitor.org/emon/node/156 Compare different CT sensors
* http://openenergymonitor.org/emon/node/319 EtherLib Configuration
3bc3a9e4f0e1d2dfe9ab39745e9e4a8770855e87
271
270
2025-02-26T13:31:47Z
Admin
1
/* Weblinks */
wikitext
text/x-wiki
'''Achtung: Es gibt inzwischen eine neue Version des Open Energy Monitors mit dem ESP32 und WLAN: [[Open Energy Monitor mit dem ESP32]]'''
=Einleitung=
In dieser Anleitung wird beschrieben wie mit Hilfe eines Arduinos und des Ethernet Shields der Energieverbrauch auf einer Internet Seite abgebildet werden kann. Das Ziel ist das der Energie Verbrauch einer ganzen Wohnung oder eines Hauses übersichtlich auf einer Website dargestellt wird. Mehr Fotos sind in meinem Picasa Album zu finden: https://picasaweb.google.com/112556810584672853030/OpenEnergyMonitor?authuser=0&feat=directlink
'''Folgende Bauteile werden benötigt:'''
-Arduino UNO Duemilanove oder kompatibel
-Ethernet Shield oder ein anderes kompatibles Shield
-Strom Sensor SCT-013-30 (30A) oder SCT-013-100 (100A) siehe: http://openenergymonitor.org/emon/node/156
-2x 10kOhm Widerstände 1/4W
-1 Elko 47 uF
-Universalplatine
-evtl. USB Netzteil oder anderes Netzteil für die Spannungsversorgung
-Pfosten Stecker Rastermaß: 2.54mm
-3,5 mm Audio Anschluss
[[Datei:emon2.png|Open Energie Monitor]]
==Elektrotechnische Grundlagen==
Elektrische Leistung wird in Watt gemessen.
'''P = U x I'''
z.B. P = 230V x 0,5A = 115W
In Abhnängikeit mit der Zeit ergeben sich Kilowatt Stunden. Braucht ein Verbraucher z.B. 1000 Watt und ist er eine Stunde in Betrieb, dann wird eine Kilowatt Stunde Energie benötigt.
'''1 kWh = 1000W x 1 h'''
Es wird also Spannung und Strom benötigt um die elektrische Energie zu messen. Da in Deutschland die Spannung nur um +-2V pendelt war es für mich nicht notwendig die Spannung zu messen. Somit beschränkt sich diese Anleitung lediglich auf eine Strom Messung. Der Strom wird dann einfach mit 230 multipliziert. Somit erspart man sich viel Arbeit und Kabel gewirr.
----
Es gibt verschiedene Arten Strom und Spannung zu messen. In handelsüblichen Energie Messgeräten wird meistens eine Strom Messung über einen Shunt Widerstand und einen Operationsverstärker vorgenommen. Das ist relativ günstig und genau (siehe: http://en.wikipedia.org/wiki/Shunt_%28electrical%29). Um größere Ströme zu messen nimmt man häufig induktive Strom Sensoren. Diese werden einfach um das stromführende Kabel "geclipst" und erzeugen je nach Stromfluss eine bestimmte Spannung oder einen bestimmten Strom. Der Vorteil hierbei ist das sich durch die Induktion eine sichere Trennung vor der gefährlichen Netzspannung ergibt.
Zudem ist diese Methode auch gut für Mietwohnungen geeignet, weil die Elektroinstallation nicht geändert werden muss. In manchen kleinen Wohnungen wird nur eine Phase verwendet. Somit wird nur ein Sensor für die Strom Messung verwendet.
''' Achtung: Auf den Leitungen liegt auch dann Netzspannung wenn die Sicherungen abgeschaltet sind!!!'''
[[Datei:emon3.jpg|Open Energie Monitor]]
=Converter Board=
Das Converter Board muss die Spannung oder den Strom (hängt vom Sensor ab, siehe: http://openenergymonitor.org/emon/node/156) in eine Spannung zwischen 0-5V DC umwandeln. Es wird ein Spannungsteiler aufgebaut, der 2,5V für den Sensor erzeugt. Mit dem entsprechendem Arduino Sketch können die Werte dann an dem Analog 0 Port ausgelesen werden. Den Aufbau der Schaltung findet man auf den Webseiten des Open Energie Monitors: http://openenergymonitor.org/emon/node/54
[[Datei:emon4.jpg|Open Energie Monitor]]
[[Datei:emon5.jpg|Open Energie Monitor]]
Die ganze Schaltung passt ohne Probleme in eine 7x7cm Abzweigdose.
[[Datei:emon12.jpg|Open Energie Monitor]]
=Arduino Sketch=
Es empfiehlt sich die Schaltung zuerst über USB zu testen, bevor man sich an die Kommunikation mit dem Ethernet Shield vertraut macht. Die Parameter müssen individuell mit einer "genormten Last" z.B. einem Wasserkocher etc. eingestellt werden. Ein Energie Messgerät sollte natürlich auch vorhanden sein.
Hier ist mein Arduino Sketch mit den Parametern für den 30A Strom Sensor:
[[Media:USBemon.zip|Download Arduino Sketch: USB emon]]
==Kalibrierung==
Ich habe für die Kalibrierung eine umgebaute Steckdosenleiste hergenommen. Dabei muss die Phase aus dem Gehäuse geführt werden. Wenn man den Sensor um das komplette Kabel montiert kann nichts gemessen werden. Das liegt daran das die Ströme sich gegenseitig aufheben. Natürlich ergibt sich in dieser Anordnung ein kleiner Messfehler, weil das Energiekosten Messgerät auch Strom verbraucht. Dieser Fehler ist jedoch sehr gering.
[[Datei:emon6.jpg|Open Energie Monitor]]
Um die Daten zu visualisieren habe ich die Werte einfach in eine Open Office Calc Tabelle kopiert und ein Diagramm erstellt. Nach dem Import mussten lediglich noch die Punkte in Kommas umgewandelt werden. Also z.B.
245.6
245,6
<gallery>
Datei:emon7.png|Samsung Fernseher
Datei:emon8.png|Wasserkocher und Herdplatten
Datei:emon9.png|Energiesparlampe 18W
Datei:emon14.png|Stromverbrauch an einem Samstag Abend.
</gallery>
==Ethernet Shield und emon==
Wenn die Mess Ergebnisse korrekt sind, kann das Ethernet Shield eingebunden werden. Das Sketch besteht aus den Programmen emon und dem Beispiel "Weblient" aus der Ethernet Library. Damit die Daten korrekt und sicher auf den Webserver übermittelt werden können ist es notwendig die API Keys aus dem emoncms Webinterface auszulesen. Die Keys finden sich hier:
[[Datei:emon11.jpg|Open Energie Monitor]]
An dieser Stelle im Arduino Sketch wird der API Key eingetragen:
<source>
client.print("GET /emon/api/post?apikey=9888888888888888888&json={power:");
client.print(watt);
client.print(",temperature:25.0}");
client.println();
</source>
Die lokale IP Adresse und die IP Adresse des Servers muss natürlich auch noch an die eigene Umgebung angepasst werden.
<source>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1,152 };
byte server[] = { 111,111,101,111}; // Enter your IP
</source>
[[Media:EthernetAndPowerInet.zip|Download Arduino Sketch: emon and Ethernet]]
Es können so auch mehrere Werte an emoncms übergeben werden. Z.B. Strom, Spannung und Temperatur.
----
In den folgende Schritten soll die Kommunikation mit der MYSQL Datenbank geprpüft werden. Als erstes wird geprüft ob das Shield im lokalen Netz erreichbar ist:
ping 192.168.1.152
Danach muss die Apache Log Datei auf dem Server geprüft werden. Dies kann bei einem Linux Server am besten mit folgendem Befehl geschehen:
tail -f /var/log/apache2/access.log
Um das ganze bunter und übersichtlicher zu gestalten kann man das ganze noch mit ccze "einfärben".
apt-get install ccze
tail -f /var/log/apache2/access.log | '''ccze'''
Bei einer erfolgreichen Verbindung stehen folgende Einträge in der Log Datei:
[[Datei:emon10.png|Open Energie Monitor]]
=Software auf dem Server=
Download der *.zip Archive:
https://github.com/openenergymonitor/emoncms3
Entpacken auf dem Server:
cd /var/www/emon
wget https://github.com/openenergymonitor/emoncms3/tarball/master
mv master openenergymonitor-emoncms3-3a1eb8b.tar
unp openenergymonitor-emoncms3-3a1eb8b.tar
mv openenergymonitor-emoncms3 emon
Die Visualisierung der Daten übernimmt das PHP Script emoncms. Damit das Script auf dem Apache2 Webserver läuft muss die Option AllowOverride All gesetzt werden.
vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride None'''
Order allow,deny
allow from all
</Directory>
muss geändert werden zu
<Directory /var/www/nossl/wiki>
Options Indexes FollowSymLinks MultiViews
'''AllowOverride All'''
Order allow,deny
allow from all
</Directory>
Nach einem Neustart des Apache Webservers ist die Seite erreichbar:
/etc/init.d/apache2 restart
Danach muss eine Datenbank für emoncms in phpmyadmin angelegt werden. Es ist zu beachten das der Zugriff von jeder IP-Adresse möglich ist, damit der Arduino auch in die SQL Datenbank schreiben darf. Eine Anleitung zur Installation ist hier zu finden:
http://openenergymonitor.org/emon/node/150
==User Registrierung abschalten==
Um zu verhindern das sich fremde Leute in emoncms einloggen kann man den Button registrieren verstecken. Dazu muss folgende Datei verändert werden:
vim /var/www/emon/Views/user/login_block.php
Diese Zeile suchen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" /> or
<input ype="submit" class="button04" value="Register" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/create';" />
und mit dieser Zeile ersetzen:
<input type="submit" class="button04" value="Login" onclick="javascript: form.action='<?php echo $GLOBALS['path']; ?>user/login';" />
==Eigenes Dashboard erstellen==
Das Dashboard kann sehr flexibel angepasst werden. Dabei werden die einzelnen Graphen einfach der Reihe nach in das Feld "Edit Dashboard" geschrieben. Wichtig ist das man immer den korrekten '''Api Key''' und die korrekte '''Feed ID''' einträgt.
Also z.B:
<iframe style="width:925px;height:300px;" marginheight="0" src="http://'''YOURDOMAIN'''/emon/Vis/rawdata.php?apikey='''YOURAPIKEY'''&'''feedid=4'''"
marginwidth="0" frameborder="0" scrolling="no"></iframe>
Hier ein Beispiel für eine schöne Übersicht auf Deutsch:
<source lang=php>
<div class="widget-container-nc">
<h2>Energie Explorer</h2>
<iframe style="width:645px; height:470px;" marginheight="0" marginwidth="0" src="http://YOURDOMAIN/emon/Vis/kWhdZoomer/kwhdzoomer.php?apikey=YOURAPIKEY&kwhd=7&power=4" frameborder="0" scrolling="no">
</iframe>
</div>
<div class="widget-container-v" style="height:562px">
<div class="widget">
<div class="title">Aktueller Energie Verbrauch<b></b></div><b>
<div class="dial" feed="power" max="5000" units="W" scale="1"></div>
</b></div><b>
<div style="clear:both;"></div><br>
<div class="stats" style="height:70px">
<b>Heutiger Energieverbrauch</b><br>
<div class="value"><span class="kwhd"></span> kWh</div>
</div>
<div class="widget">
<div id="house-graph" class="graph" feed="power"></div>
</div>
</b></div>
<iframe style="width:925px;height:300px;" marginheight="0" src="http://YOURDOMAIN/emon/Vis/rawdata.php?apikey=YOURAPIKEY&feedid=4" marginwidth="0" frameborder="0" scrolling="no"></iframe>
<br><br>
</source>
Die Sprache lässt sich einfach in den entsprechenden PHP Dateien ändern:
vim /emon/Vis/kWhdZoomer/view.js
vim /emon/Vis/kWhdZoomer/kwhdzoomer.php
Ergibt z.B. folgendes Dashboard:
[[Datei:emon17.png|Open Energie Monitor]]
Fertige Installation:
[[Datei:emon15.jpg|300px|Open Energie Monitor]][[Datei:emon16.jpg|300px|Open Energie Monitor]]
= Weblinks =
* http://openenergymonitor.org Official Page
bacbb099d4746d132f7de22750a38061aa39cd34
Turnigy 9x
0
43
272
168
2025-02-26T13:33:17Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
* Sender Einschalten
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Backup anlegen:
<syntaxhighlight lang="C">
'''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading flash memory:
Reading | ################################################## | 100% 12.38s
avrdude: writing output file "backupflash.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
'''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading eeprom memory:
Reading | ################################################## | 100% 0.43s
avrdude: writing output file "backupeeprom.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
</syntaxhighlight>
Flashen:
Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren...
'''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb'''
<source lang=text>
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "th9x.bin"
avrdude: input file th9x.bin auto detected as raw binary
avrdude: writing flash (44956 bytes):
Writing | ################################################## | 100% 9.47s
avrdude: 44956 bytes of flash written
avrdude: verifying flash memory against th9x.bin:
avrdude: load data flash data from input file th9x.bin:
avrdude: input file th9x.bin auto detected as raw binary
avrdude: input file th9x.bin contains 44956 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 8.71s
avrdude: verifying ...
avrdude: 44956 bytes of flash verified
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
</source>
bffccd6a48eadf4f5a36d2b469115d685b6fdbc5
273
272
2025-02-26T13:33:43Z
Admin
1
wikitext
text/x-wiki
In diesem Artikel wird beschrieben wie eine alternative Firmware auf den Modellbau Sender Turnigy 9x aufgespielt werden kann.
* Kabel einlöten
* Programmer anstecken
* Treiber herunterladen: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/download
* Win AVR herunterladen: http://sourceforge.net/projects/winavr/files
* Programmieren:
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
'''Um den Fehler zu beseitigen:'''
* Sender Ausschalten
* Alle Kabel zum Programmer und PC verbinden
* Alle Schalter auf "AUS"
* Flachband Kabel der Rückseite des Senders (mit den Batterien) einstecken
* Sender Einschalten
'''avrdude -c avrispmkII -p m64 -v -P usb'''
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Backup anlegen:
<syntaxhighlight lang="C">
'''avrdude -c avrispmkII -p m64 -U flash:r:backupflash.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading flash memory:
Reading | ################################################## | 100% 12.38s
avrdude: writing output file "backupflash.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
'''avrdude -c avrispmkII -p m64 -U eeprom:r:backupeeprom.bin:r -v -P usb'''
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: reading eeprom memory:
Reading | ################################################## | 100% 0.43s
avrdude: writing output file "backupeeprom.bin"
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
</syntaxhighlight>
Flashen:
Datei: th9x.bin in Ordner "C:\Program Files\WinAVR-20100110\bin" kopieren...
'''C:\Program Files\WinAVR-20100110\bin>avrdude -c avrispmkII -p m64 -U flash:w:th9x.bin:a -v -P usb'''
<syntaxhighlight lang="C">
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e9602
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "th9x.bin"
avrdude: input file th9x.bin auto detected as raw binary
avrdude: writing flash (44956 bytes):
Writing | ################################################## | 100% 9.47s
avrdude: 44956 bytes of flash written
avrdude: verifying flash memory against th9x.bin:
avrdude: load data flash data from input file th9x.bin:
avrdude: input file th9x.bin auto detected as raw binary
avrdude: input file th9x.bin contains 44956 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 8.71s
avrdude: verifying ...
avrdude: 44956 bytes of flash verified
avrdude: safemode: lfuse reads as E
avrdude: safemode: hfuse reads as 89
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.
</syntaxhighlight >
dddf51fe80150f42f0fd2797f94d59a76dc018ae